SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
나의 코드
T = int(input())
for t in range(T):
N = int(input())
data = [list(input()) for _ in range(N)]
# print(data)
ans = 'NO'
count = 0
for i in range(N):
for j in range(N):
if data[i][j] == 'o': #가로줄탐색
count += 1
if count == 5:
ans = 'YES'
break
if data[j][i] == 'o': #세로줄탐색
count += 1
if count == 5:
ans = 'YES'
break
if data[j][j] == 'o': #오른쪽아래로 내려가는 대각선 탐색
count += 1
if count == 5:
ans = 'YES'
break
if data[j][-j-1] == 'o': #왼쪽아래로 내려가는 대각선 탐색
count += 1
if count == 5:
ans = 'YES'
break
else: #x를 만날경우 다시 초기화
count = 0
print(f'#{t+1} {ans}')
결과
100개중 69개 맞음

출력은 맞는데 다른 반례들을 생각해봐야될 것 같다. 사실 반례를 아는데 어떻게 구현하는지는 모르겠다...ㅎㅎㅎ
방금 방향벡터 생각하고 풀이방법 찾아봤는데 방향벡터로 하는 게 맞나보다. 내가 한 방법이랑 아예 달라서 일단 여기까지만 하고 마치겠다.
'스터디 1일 1커밋' 카테고리의 다른 글
| 240225 [swea] 1234. 비밀번호 (1) | 2024.02.25 |
|---|---|
| 240223 [BOJ/백준] 2178. 미로탐색 (0) | 2024.02.23 |
| 240222 [swea] 19185. 육십갑자 (0) | 2024.02.23 |
| 240221 [BOJ/백준] 2309. 일곱 난쟁이 (0) | 2024.02.21 |
| 240220 [BOJ/백준] 2804. 크로스워드 만들기 (0) | 2024.02.20 |