Koala - 9기/기초 알고리즘 스터디
[백준/python] 16955번 : 오목, 이길 수 있을까?
shlinn
2023. 2. 15. 03:21
https://www.acmicpc.net/problem/16955
16955번: 오목, 이길 수 있을까?
구사과와 큐브러버는 10×10 크기의 바둑판에서 오목을 하고 있다. 턴은 구사과가 먼저 갖는다. 바둑판의 상태가 주어진다. 구사과가 턴을 한 번 더 가졌을 때, 이길 수 있는지 구하는 프로그램을
www.acmicpc.net
문제 코드
문제 풀이
함수를 사용하여
1) 좌측 위 + 우측 아래, 2) 가운데 위 + 가운데 아래, 3) 우측 위 + 좌측 아래, 4) 좌 + 우
의 좌표를 비교함.
반복문을 실행, x,y = 0,0 부터 x,y = 10,10 까지 '.' 인 좌표를 찾아서 그 좌표를 'X' 로 바꿔주고, 그 좌표를 포함하여 연속된 'X' 5개가 완성되는지 확인함. 한 좌표에서 모든 함수를 돌았으면, 좌표를 변경하기 전, 돌았던 좌표를 다시 '.' 으로 변경.
만약 A[x][y] 를 포함한 연속 5개의 'X' 를 찾는다면, cnt를 + 1 해주고 return, 이후 cnt 가 1 인 상태로 돌아왔기 때문에 1을 출력, 2중 for 문을 종료하기 위해 설정해놓은 t를 True 로 변경 후 두 번째 for 문을 break.
t == True 로 첫 번째 for 문도 break 하여 종료.
가능한 모든 좌표의 모든 함수 반복 후 연속된 5개의 'X'를 찾지 못한다면 0을 출력하도록 함.