[BOJ2615] 오목

Updated:

문제

  • 가로세로 19줄
  • 연속 5알 놓이면 이김, 6알은 안 이김
  • 승부 체크

입력

  • 19줄 19개 숫자
  • 검은 바둑알 1, 흰 바둑알 2, 빈 공간 0

출력

  • 검은색 이기면 1, 흰색 이기면 2 출력
  • 연속된 다섯 개의 바둑알 중, 가장 왼쪽에 있는 알(세로라면 가장 위)의 가로줄, 세로줄 번호 출력

설계

  • 탐색은 위에서 아래로, 왼쪽에서 오른쪽 방향, 자동적으로 출력 2번째 조건 만족할 수 있음
  • 특정 돌을 만나면 dfs 이용하여, 특정 방향을 모두 탐색
  • 여기서 방향은 우상단, 우단, 우하단, 하단 4가지만 체크해도 됨 (탐색 방향 때문)
  • dfs로 쭉 돌면서 방향을 포함한 방문체크 —> 6목 이상을 다시 방문했을 때 5목으로 인지되는 부분 방지, 다른 방향으로 뻗어 나가서 오목이 되는 경우 체크 가능

How I solved(click to github)


ref :
BOJ2615

Leave a comment