์ฝ๋ฉ๋์ฅ / 23.7 ์ฌ์ฌ๋ฌธ์ : ์ง๋ขฐ์ฐพ๊ธฐ
dojang.io/mod/quiz/attempt.php?attempt=1348879&cmid=2298
๋ฌธ์
์ ์ถ๋ ฅ ์
๋์ ํ์ด
col, row = map(int, input().split())
matrix = []
for i in range(row):
matrix.append(list(input()))
for i in range(row):
for j in range(col):
if matrix[i][j] == '*':
continue
elif matrix[i][j] == '.':
cnt = 0
for y in range(i - 1, i + 2):
for x in range(j - 1, j + 2):
if y < 0 or x < 0 or y >= row or x >= col:
continue
elif matrix[y][x] == '*':
cnt += 1
matrix[i][j] = cnt
for i in range(row):
for j in range(col):
print(matrix[i][j], end='')
print()
๋๋ฌด ํ๋ค์๋ค.... ๋ฌธ์ ์ ๋๋ต ๋ ์๊ฐ์ ๊ฑธ๋ฆฐ๋ค๊ณ ๋์๋๋ฐ ๋ ํ๋ฃจํ๊ณ ๋์๊ฐ ๊ณ ๋ฏผํ๋๋ฐ ๋์ ํ ๋ชจ๋ฅด๊ฒ ์ด์ ํด์ค ๋ดค๋ค. ํด์ค ๋ด๋ ๋ชจ๋ฅด๊ฒ ์ด์ ๋จธ๋ฆฌ ์ธ๋งค๊ณ ์ดํ์ ๋ ๊ณ ๋ฏผํด์ ์ป์ด๋ธ ๋ต...
๋จผ์ input().split์ ์ด์ฉํด ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ col, row์ ๊ฐ ๊ฐ ์ ์ฅํด์ค๋๋ค. input์ ์ ๋ ฅํ ๊ฐ์ ๋ฌธ์์ด๋ก ๋ณ์์ ์ ์ฅ๋๋ฏ๋ก map์ ์ด์ฉํด ์ ์(int)๋ก ๋ฐ๊ฟ์ค๋๋ค.
๊ทธ ๋ค์ ๋น ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ค๋๋ค. ๋น ๋ฆฌ์คํธ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด 2์ฐจ์ ๋ฆฌ์คํธ๋ก ์ ์ฅ๋์ด์ผ ํ๋ฏ๋ก for๋ฌธ์ ์ด์ฉํด ๋ฆฌ์คํธ์ ์ ๋ ฅ๊ฐ์ ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด ๋ฃ์ด์ฃผ๊ณ ์ธ๋ก๊ฐ๋งํผ ๋ฐ๋ณตํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ ๋ ฅ๊ฐ์ด 2์ฐจ์ ๋ฆฌ์คํธ๋ก ์ ์ฅ๋ฉ๋๋ค. ex) .** ์ ์ ๋ ฅํ๋ฉด ์ ๋ ฅ๊ฐ์ด ๋ฆฌ์คํธ๋ก ๋ณํด ๋น ๋ฆฌ์คํธ์ matrix = [[., *, *]] ๋ก ์ ์ฅ๋๊ณ ์ธ๋ก๊ฐ์ 3์ ์ ๋ ฅํด 3์ด ๋์๋ค๊ณ ํ๋ฉด range(3)์ด ๋๋ฏ๋ก ์ด ๊ณผ์ ์ 3๋ฒ ๋ฐ๋ณตํ๊ฒ ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด ๋น ๋ฆฌ์คํธ๊ฐ 2์ฐจ์ ๋ฆฌ์คํธ๊ฐ ๋ฉ๋๋ค. (matrix = [., *, *], [*, ., .], [., *, .])
์ด๋ ๊ฒ 2์ฐจ์ ๋ฆฌ์คํธ๊ฐ ๋ง๋ค์ด์ก๋ค๋ฉด for๋ฌธ์ ์ด์ฉํด ๋ฆฌ์คํธ๋ฅผ ๊ฒ์ฌํ์ฌ ๋ฆฌ์คํธ ์์๊ฐ * ์ด๋ผ๋ฉด ๊ฑด๋๋ฐ๊ณ . ์ด๋ฉด ์ฃผ๋ณ ์ง๋ขฐ์ ์๋ฅผ ์ถ๋ ฅํ๊ฒ ํฉ๋๋ค. ๋ฆฌ์คํธ ์์๊ฐ . ์ด๋ฉด cnt๋ผ๋ ๋ณ์์ 0์ ์ฃผ๊ณ ์ฃผ๋ณ ์์๋ค์ ๊ฒ์ฌํด ์ง๋ขฐ(*)๋ฅผ ๋ฐ๊ฒฌํ๋ฉด 1์ด ์ฆ๊ฐํ๊ฒ ํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฆฌ์คํธ ๋ฐ์ ๊ฒ์ฌํ๋ฉด ์๋๋ฏ๋ก y < 0 or x < 0 or y >= row or x >= col ๋ก ์กฐ๊ฑด์ ์ฃผ์ด ์กฐ๊ฑด๊ณผ ์ผ์นํ๋ฉด ๊ฑด๋๋๋๋ค. ๋ง์ง๋ง์ผ๋ก matrix[i][j] = cnt ๋ก ์์๋ฅผ cnt๋ก ๋ฐ๊ฟ์ค๋๋ค.
๋ง์ง๋ง์ผ๋ก ํ๋ฒ ๋ for๋ฌธ์ ์ฌ์ฉํด์ ์์๋ฅผ ์ถ๋ ฅํฉ๋๋ค. * ๋ ๊ฑด๋๋ฐ์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋๊ณ .๋ cnt๋ก ๋ฐ๊ฟ์ด ์ซ์๋ก ์ถ๋ ฅ๋ฉ๋๋ค.
'๐ง Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C] ๋ฐฑ์ค 10757๋ฒ / ํฐ ์ A + B (0) | 2023.09.04 |
---|---|
[Python] ํน์ ๋จ์ด ๊ฐ์ ์ธ๊ธฐ (0) | 2021.04.07 |
[JavaScript] ์๋ฐ์๋ฐ์๋ฐ์ (0) | 2021.01.30 |
[JavaScript] ๊น์๋ฐฉ ์ฐพ๊ธฐ (0) | 2021.01.23 |