너무 쉬운 문제라 무조건 맞을거라 생각하고 안돌려보고 바로 제출했는데 fail...
뭐가 틀렸는지 10분 동안 논리 구현 부분만 노려보며 고민해도 못 찾았는데
알고보니 루프를 한 번 덜 돌았네요.🥲
🔥 작성 코드
T = 10
for test_case in range(1, T):
N = int(input())
arr = [list(map(int, input().split())) for _ in range(N)]
result = 0
for i in range(N):
cnt = 0
for j in range(N):
if arr[j][i] == 1:
if cnt == 0:
cnt = 1
if cnt == 2:
cnt = 1
elif arr[j][i] == 2:
if cnt == 1:
cnt = 2
result += 1
else:
if cnt == 2:
cnt = 0
print(f'#{test_case} {result}')
테스트 케이스를 하나 덜 입력해서 10개 중 9개 정답...
🔥 정답 코드 (🌪️62,204kb 202ms)
T = 10
for test_case in range(1, T+1):
N = int(input())
arr = [list(map(int, input().split())) for _ in range(N)]
result = 0
for i in range(N):
cnt = 0
for j in range(N):
if arr[j][i] == 1:
if cnt == 0 or cnt == 2:
cnt = 1
elif arr[j][i] == 2:
if cnt == 1:
cnt = 2
result += 1
else:
if cnt == 2:
cnt = 0
print(f'#{test_case} {result}')
- 위 쪽은 N극, 아래쪽은 S극이기 때문에 N극 아래에 S극이 온다면 교착상태가 하나 늘어납니다.
- 다 무시하고 N먼저 찾고, 찾았으면 다시 전부 무시하며 S극을 찾습니다.
- 한 쌍을 찾게 되면 결과값에 1을 더해주고 다시 2~3을 반복합니다.
'Algorithm > SWEA' 카테고리의 다른 글
[SWEA 4613] 러시아 국기 같은 깃발 (python) (0) | 2022.02.18 |
---|---|
[SWEA] [S/W 문제해결 응용] 7일차 - 행렬찾기 (python) (0) | 2022.02.18 |
[SWEA 4408] 자기 방으로 돌아가기 (python) (0) | 2022.02.17 |
[SWEA 1210] [S/W 문제해결 기본] 2일차 - Ladder1 (0) | 2022.02.17 |
[SWEA 1974] 스도쿠 검증 (0) | 2022.02.15 |