반응형
문제
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
🐍파이썬
더보기
❌ Fail Code
T = int(input())
for test_case in range(1, T+1):
n = int(input())
arr = []
ans = "NO"
for _ in range(n):
a = input()
if a.count("ooooo"):
ans = "YES"
else:
arr.append(a)
if ans == "NO":
d_str = '' #대각선문자열
d_str2 = [[] for _ in range((n-1)*2)]
for i in range(n):
str = '' #세로문자열
for j in range(n):
str += arr[j][i]
if i==j:
d_str += arr[i][j]
if str.count("ooooo") or d_str.count("ooooo"):
ans = "YES"
break
for k in range(4, (n-1)*2):
if i+j == k:
d_str2[k] += arr[i][j]
if ''.join(d_str2[k]).count("ooooo"):
ans = "YES"
break
if ans == "YES":
break
print("#{} {}".format(test_case, ans))
96개 통과
왼쪽->오른쪽 대각선 처리 실패
def search(arr):
#오른쪽, 아래, 왼쪽대각선, 오른쪽대각선
dx = [1, 0, 1, 1]
dy = [0, 1, -1, 1]
for i in range(n):
for j in range(n):
if arr[i][j] == "o": #"o"이 나오면
for k in range(4): #네 방향 search
x = i
y = j
cnt = 0
#index범위 벗어나지 않고 "o"이 연이어 나오는 한 계속 카운트
while 0 <= x <= n-1 and 0 <= y <= n-1 and arr[x][y]=="o":
cnt += 1
x += dx[k] #한쪽방향으로 계속 이동
y += dy[k]
if cnt == 5: #cnt가 5가 되었다면 오목완성이므로 "YES"리턴
return "YES"
return "NO"
T = int(input())
for test_case in range(1, T+1):
n = int(input())
arr = []
for _ in range(n):
arr.append(input())
print("#{} {}".format(test_case, search(arr)))
풀이참고
https://chaemi720.tistory.com/49
[SWEA] 11315. 오목 판정 - Python
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXaSUPYqPYMDFASQ SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com N X N 크기의 판이
chaemi720.tistory.com
반응형
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA|파이썬] 13428. 숫자 조작 (D3) (0) | 2023.05.18 |
---|---|
[SWEA|파이썬] 3131. 100만 이하의 모든 소수 (D3)-에라토스테네스의 체 (1) | 2023.05.16 |
[SWEA|파이썬] 5948. 새샘이의 7-3-5 게임 (D3) (0) | 2023.05.16 |
[SWEA|파이썬] 1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 (D3) (0) | 2023.05.15 |
[SWEA|파이썬] 1221. [S/W 문제해결 기본] 5일차 - GNS(D3) (0) | 2023.05.14 |
[SWEA|파이썬] 1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드 (D3) (2) | 2023.05.14 |