ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
5x5 ํฌ๊ธฐ์ ์ซ์ํ์ด ์์ ๋, ์์์ ์์น์์ ๋ถํฐ ์์ํ์ฌ ์ธ์ ํด ์๋ ๋ค ๋ฐฉํฅ์ผ๋ก ๋ค์ฏ ๋ฒ ์ด๋ํ๋ฉด์, ๊ฐ ์นธ์ ์ ํ์๋ ์ซ์๋ฅผ ์ฐจ๋ก๋ก ๋ถ์ด๋ฉด 6์๋ฆฌ์ ์๊ฐ ๋๋ค. ์ด๋ ์๋ก ๋ค๋ฅธ ์ฌ์ฏ ์๋ฆฌ์ ์๋ค์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋ต์ ์ฐพ๊ธฐ ์ํด์๋ ๊ฐ ๊ทธ๋ํ์ ์ขํ๋ง๋ค DFS๋ฅผ ํตํด, ๋ฐฉ๋ฌธ๊ฐ๋ฅํ ๊ฒฝ๋ก๋ฅผ ํ์ํ๊ณ 6์๋ฆฌ๊ฐ ๋๋ฉด ์ซ์๋ฅผ ๊ธฐ๋กํ๋ฉด ์ฝ๊ฒ ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค.
์ฝ๋
from sys import stdin
def dfs(x, y, num):
if len(num) == 6:
answer.add(num)
return
for dx, dy in dirs:
next_x, next_y = x + dx, y + dy
if 0 <= next_x < 5 and 0 <= next_y < 5:
dfs(next_x, next_y, num + graph[next_x][next_y])
if __name__ == '__main__':
answer = set()
dirs = ((0, 1), (0, -1), (1, 0), (-1, 0))
graph = [list(stdin.readline().split()) for _ in range(5)]
for i in range(5):
for j in range(5):
dfs(i, j, '')
print(len(answer))
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 16197 ๋ ๋์ (0) | 2020.09.25 |
---|---|
๋ฐฑ์ค: 15686 ์นํจ ๋ฐฐ๋ฌ (0) | 2020.09.24 |
๋ฐฑ์ค: 3568 iSharp (0) | 2020.09.24 |
๋ฐฑ์ค: 15662 ํฑ๋๋ฐํด (2) (0) | 2020.09.23 |
๋ฐฑ์ค: 14891 ํฑ๋๋ฐํด (0) | 2020.09.23 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ