๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜/DFS BFS

[Python] ๋ฐฑ์ค€ 1388 ๋ฐ”๋‹ฅ ์žฅ์‹

by JayAlex07 2023. 2. 8.

๐Ÿง‘โ€๐Ÿ’ป [Python] ๋ฐฑ์ค€ 1388 ๋ฐ”๋‹ฅ ์žฅ์‹

Silver 4 - ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰

ํƒ์ƒ‰์„ ๋‘ ๋ฒˆ ํ•ด์•ผํ•œ๋‹ค. ์ฆ‰ 2์ค‘ for๋ฌธ์„ ๋‘๋ฒˆ ์‚ฌ์šฉํ•œ๋‹ค.

ํƒ์ƒ‰์„ ํ•ด์„œ '-' ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋‚˜๋ฌด ํŒ์ž์™€ '|'๊ฐ€ ์—ด๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋‚˜๋ฌด ํŒ์ž๋“ค์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ผ๋‹ค

๋‹จ ๋‚˜๋ฌด ํŒ์ž์˜ ๋„ˆ๋น„๋Š” 1์ด๋‹ค

๋ฌธ์ œํ’€์ด

  • 2์ค‘ for๋ฌธ์„ ๋‘๋ฒˆ ์ˆœํšŒ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.
    • ์ฒซ ๋ฒˆ์งธ๋Š” ๊ฐ€๋กœํ˜• ๋‚˜๋ฌด ํŒ์ž๋“ค์„ ์ฐพ๋Š” ๊ฒƒ์ด๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” ์„ธ๋กœํ˜• ๋‚˜๋ฌด ํŒ์ž๋“ค์„ ์ฐพ๋Š” ๊ฒƒ์ด๋‹ค
  • ๋จผ์ € '-' ์ด๋ฉด ๊ณ„์† ์ˆœํšŒ๋ฅผ ํ•˜๋˜, ๋‹ค์Œ ํŒ์ž๊ฐ€ '|'์ด๋ฉด, ๊ทธ ๋‚˜๋ฌด ํŒ์ž๋ฅผ count์— 1์„ ๋”ํ•ด์ค€๋‹ค
    • ์ฆ‰ '|'์ด ๋‚˜ํƒ€๋‚˜๋ฉด, '-' ์˜ ์—ฐ์† ๋œ ๋‚˜๋ฌด ํŒ์ž๊ฐ€ ๋Š๊ฒผ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค
    • ๊ทธ๋ฆฌ๋กœ 2์ค‘ for๋ฌธ ์ค‘ 2๋ฒˆ์งธ for๋ฌธ์ด ๋๋‚˜๋ฉด, ๋งˆ์ง€๋ง‰ ํŒ์ž๊ฐ€ '|'์ธ์ง€ ๋˜๋Š” '-'์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค
  • ๋‚˜๋ฌด ํŒ์ž์˜ ๋„ˆ๋น„๊ฐ€ 1 ์ด๋‹ˆ '-'๋กœ ๋๋‚˜๋ฉด, count์— 1์„ ๋”ํ•ด์ค˜์•ผ ํ•œ๋‹ค

์ฝ”๋“œ

N, M = map(int, input().split())

floor = [input() for _ in range(N)]

count = 0

for i in range(N):
    for j in range(M-1):
        if floor[i][j] == "-" and floor[i][j + 1] == "|":
            count += 1
    if floor[i][-1] == "-":
        count += 1

for j in range(M):
    for i in range(N-1):
        if floor[i][j] == "|" and floor[i + 1][j] == "-":
            count += 1
    if floor[N-1][j] == "|":
        count += 1

print(count)