10709๋ฒ: ๊ธฐ์์บ์คํฐ
์ถ๋ ฅ์ H ํ์ผ๋ก, ๊ฐ ํ์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ W ๊ฐ์ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ์ถ๋ ฅ์ i ๋ฒ์งธ ํ j ๋ฒ์งธ ์ ์ (1 โฆ i โฆ H, 1 โฆ j โฆ W) ๋, ์ง๊ธ๋ถํฐ ๋ช ๋ถํ์ ์ฒ์์ผ๋ก ๊ตฌ์ญ (i, j) ์ ๊ตฌ๋ฆ์ด ๋จ๋์ง๋ฅผ ํ์
www.acmicpc.net
๋ฌธ์
JOI์๋ ๋จ๋ถ๋ฐฉํฅ์ด H ํฌ๋ก๋ฏธํฐ, ๋์๋ฐฉํฅ์ด W ํฌ๋ก๋ฏธํฐ์ธ ์ง์ฌ๊ฐํ ๋ชจ์์ด๋ค. JOI์๋ ๊ฐ๋ก์ ์ธ๋ก์ ๊ธธ์ด๊ฐ 1ํฌ๋ก๋ฏธํฐ์ธ H × W ๊ฐ์ ์์ ๊ตฌ์ญ๋ค๋ก ๋๋์ด ์๋ค. ๋ถ์ชฝ์ผ๋ก๋ถํฐ i ๋ฒ์งธ, ์์ชฝ์ผ๋ก๋ถํฐ j ๋ฒ์งธ์ ์๋ ๊ตฌ์ญ์ (i, j) ๋ก ํ์ํ๋ค.
๊ฐ ๊ตฌ์ญ์ ํ๋์๋ ๊ตฌ๋ฆ์ด ์์ ์๋, ์์ ์๋ ์๋ค. ๋ชจ๋ ๊ตฌ๋ฆ์ 1๋ถ์ด ์ง๋ ๋๋ง๋ค 1ํฌ๋ก๋ฏธํฐ์ฉ ๋์ชฝ์ผ๋ก ์ด๋ํ๋ค. ์ค๋์ ๋ ์จ๊ฐ ์ ๋ง ์ข๊ธฐ ๋๋ฌธ์ JOI์์ ์ธ๋ถ์์ ๊ตฌ๋ฆ์ด ์ด๋ํด ์ค๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ง๊ธ ๊ฐ ๊ตฌ์ญ์ ํ๋์ ๊ตฌ๋ฆ์ด ์๋์ง ์๋์ง๋ฅผ ์๊ณ ์๋ค. ๊ธฐ์์ฒญ์์ ์ผํ๊ณ ์๋ ์ฌ๋ฌ๋ถ์ ๊ฐ ๊ตฌ์ญ์ ๋ํด์ ์ง๊ธ๋ถํฐ ๋ช ๋ถ๋ค ์ฒ์์ผ๋ก ํ๋์ ๊ตฌ๋ฆ์ด ์ค๋์ง๋ฅผ ์์ธกํ๋ ์ผ์ ๋งก์๋ค. ๊ฐ ๊ตฌ์ญ์ ๋ํด์ ์ง๊ธ๋ถํฐ ๋ช ๋ถ๋ค ์ฒ์์ผ๋ก ํ๋์ ๊ตฌ๋ฆ์ด ์ค๋์ง๋ฅผ ๊ตฌํ์ฌ๋ผ.
์ ๋ ฅ
์ ๋ ฅ์ 1 + H ํ์ผ๋ก ์ฃผ์ด์ง๋ค.
์ฒซ ๋ฒ์งธ ํ์๋ ์ ์ H, W (1 โฆ H โฆ 100, 1 โฆ W โฆ 100) ๊ฐ ๊ณต๋ฐฑ์ ์ฌ์ด์ ์ฃผ๊ณ ์ฃผ์ด์ง๋ค. ์ด๊ฒ์ JOI์๊ฐ H × W ๊ฐ์ ์์ ๊ตฌ์ญ์ผ๋ก ๋๋์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ด์ด์ง H ๊ฐ์ ํ์ i๋ฒ์งธ ํ (1 โฆ i โฆ H) ์๋ W๋ฌธ์์ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ค. W ๊ฐ์ ๋ฌธ์ ์ค j๋ฒ์งธ ๋ฌธ์ (1 โฆ j โฆ W) ๋, ๊ตฌ์ญ (i, j) ์ ์ง๊ธ ๊ตฌ๋ฆ์ด ๋ ์๋์ง ์๋์ง๋ฅผ ๋ํ๋ธ๋ค. ๊ตฌ๋ฆ์ด ์๋ ๊ฒฝ์ฐ์๋ ์์ด ์๋ฌธ์ 'c' ๊ฐ, ๊ตฌ๋ฆ์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ฌธ์ '.' ๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ถ๋ ฅ์ H ํ์ผ๋ก, ๊ฐ ํ์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ W ๊ฐ์ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ์ถ๋ ฅ์ i ๋ฒ์งธ ํ j ๋ฒ์งธ ์ ์ (1 โฆ i โฆ H, 1 โฆ j โฆ W) ๋, ์ง๊ธ๋ถํฐ ๋ช ๋ถํ์ ์ฒ์์ผ๋ก ๊ตฌ์ญ (i, j) ์ ๊ตฌ๋ฆ์ด ๋จ๋์ง๋ฅผ ํ์ํ๋ค. ๋จ, ์ฒ์๋ถํฐ ๊ตฌ์ญ (i, j) ์ ๊ตฌ๋ฆ์ด ๋ ์์๋ ๊ฒฝ์ฐ์๋ 0์, ๋ช ๋ถ์ด ์ง๋๋ ๊ตฌ๋ฆ์ด ๋จ์ง ์์ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ
6 8
.c......
........
.ccc..c.
....c...
..c.cc..
....c...
์์ ์ถ๋ ฅ
-1 0 1 2 3 4 5 6
-1 -1 -1 -1 -1 -1 -1 -1
-1 0 0 0 1 2 0 1
-1 -1 -1 -1 0 1 2 3
-1 -1 0 1 0 0 1 2
-1 -1 -1 -1 0 1 2 3
Solution
import sys
input = sys.stdin.readline
h, w = map(int, input().split())
area = [list(map(str, input().rstrip())) for _ in range(h)] #์
๋ ฅ
for i in area:
cnt = 0
for j in i:
if j == 'c': #์ฒ์๋ถํฐ ๊ตฌ์ญ์ ๊ตฌ๋ฆ์ด ๋ ์์๋ ๊ฒฝ์ฐ
cnt = 0 #๊ตฌ๋ฆ์ด ์์ผ๋ฉด 0์ผ๋ก ์ด๊ธฐํ
print(0, end = ' ')
cnt += 1 #๊ตฌ๋ฆ์ด ์ง๋๊ฐ ๊ตฌ์ญ์ ์นด์ดํธ ํ๊ธฐ ์ํด +1
elif j == '.' and cnt != 0: #๊ตฌ๋ฆ์ด ๋จ๋ ์๊ฐ
print(cnt, end = ' ')
cnt += 1 #๊ตฌ๋ฆ์ด ์ฐ์์ผ๋ก ์ง๋๊ฐ ๋ ์นด์ดํธ ํ๊ธฐ ์ํด +1
elif j == '.' and cnt == 0: #๋ช ๋ถ์ด ์ง๋๋ ๊ตฌ๋ฆ์ด ๋จ์ง ์๋ ๊ฒฝ์ฐ
print(-1, end = ' ')
print(end = '\n')'๐งฉ Algorithm > [BOJ] Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| BOJ 10773๋ฒ : ์ ๋ก (Python/Silver 4) (0) | 2023.05.02 |
|---|---|
| BOJ 10866๋ฒ : ๋ฑ (Python/Silver 4) (0) | 2023.04.20 |
| BOJ 14916๋ฒ : ๊ฑฐ์ค๋ฆ๋ (Python/Silver 5) (0) | 2023.04.12 |
| BOJ 16953๋ฒ : A -> B (Python/Silver 2) (0) | 2023.04.05 |
| BOJ 1541๋ฒ : ์์ด๋ฒ๋ฆฐ ๊ดํธ (Python/Silver 2) (0) | 2023.04.04 |