본문 바로가기
Programming Test/문제풀이

[문제 풀이 13] 코드 트리 - 오목의 승패

by muns91 2024. 4. 16.
오목의 승패

 

  • 문제 유형 : Simulation, BFS
  • 사용언어 : Python
  • 난이도 : 실버 3
  • 출처 : 코드 트리

 

https://www.codetree.ai/training-field/my-lists/20228/concave-victory-and-defeat/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

def bfs(x, y):
    target = graph[x][y]

    for dx, dy in direction:
        cnt = 1
        nx = x + dx
        ny = y + dy

        while 0 <= nx < 19 and 0 <= ny < 19 and graph[nx][ny] == target:
            cnt += 1

            if cnt == 5:
 
                if 0 <= x - dx < 19 and 0 <= y - dy < 19 and graph[x - dx][y - dy] == target:
                    break
                if 0 <= nx + dx < 19 and 0 <= ny + dy < 19 and graph[nx + dx][ny + dy] == target:
                    break

                print(target)
                print(x + 1, y + 1)
                exit(0)

            nx += dx
            ny += dy


graph = [list(map(int, input().split())) for _ in range(19)]

direction = [(0, 1), (1, 0), (1, 1), (-1, 1)]

for i in range(19):
    for j in range(19):
        if graph[i][j] != 0:
            bfs(i, j)

print(0)
반응형