11315. 오목 판정 (SWEA)
※ SW expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
출처:
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
T = int(input())
dr=[1,1,0,1]
dc=[0,1,1,-1]
for test_case in range(1, T + 1):
N=int(input())
board=[]
cnt=0
for _ in range(N):
board.append(list(input()))
for i in range(N):
for j in range(N):
if board[i][j]=='o':
for d in range(4):
cnt=0
nr=i
nc=j
while 0<=nr<N and 0<=nc<N and board[nr][nc]=='o':
nr+=dr[d]
nc+=dc[d]
cnt+=1
if cnt>4:
break
if cnt>4:
break
if cnt>4:
break
if cnt>4:
print(f'#{test_case} YES')
else:
print(f'#{test_case} NO')
- 판 위에 ‘o’이 있다면, 해당 지점부터 4개의 방향에 대해 연속하는 바둑돌 수를 계산한다.
- 그 수가 5 이상이라면 멈추고 YES를 출력한다.
This post is licensed under CC BY 4.0 by the author.