문제 바로가기
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
나의 코드 및 설명
t = int(input())
for test_case in range(1,t+1):
n, m = map(int, input().split()) #n:세로 m:가로
d = {"0001101":0, "0011001":1, "0010011":2, "0111101":3, "0100011":4, "0110001":5, "0101111":6, "0111011":7, "0110111":8, "0001011":9}
board = [list(map(int, input())) for _ in range(n)]
ans = 0
check = False
for i in range(n):
for j in range(m-1,-1,-1):
if board[i][j] == 1:
temp_list = board[i][j-55:j+1]
check = True
break
if check:
break
result = []
for i in range(8):
small_list = temp_list[7*i:7*i+7]
result.append(d["".join(map(str, small_list))])
odd = 0
even = 0
for i in range(len(result)):
if i % 2 == 0:
odd += result[i]
else:
even += result[i]
if (odd*3 + even) % 10 == 0:
ans = sum(result)
print("#{} {}".format(test_case, ans))
피드백
처음 풀 때는 정답 판정을 받았지만 다시 풀어봤을 때 런타임 에러가 떴다. 두 시간동안이나 원인을 찾아서 헤맸다. 결국 코드를 하나하나 실행시켜보면서 디버깅해봤는데, 일부 테스트케이스에서 딕셔너리 값을 제대로 읽어오지 않았다. 그제서야 딕셔너리를 다시 확인했는데, 콜론 기호 하나가 잘못들어가 있어서 계속 런타임 에러가 발생한 것이었다. 와... 이것 때문에 두 시간이나 쓰다니.. 그래도 런타임 에러 원인을 찾아서 기쁘고, 앞으로 딕셔너리 사용할 때는 더 집중해야겠다는 교훈을 얻었다.
'SWEA (SW Expert Academy) > D3' 카테고리의 다른 글
[SWEA/D3] 10580 전봇대 (0) | 2023.05.18 |
---|---|
[SWEA/D3] 7272 안경이 없어! (0) | 2023.05.18 |
[SWEA/D3] 1493 수의 새로운 연산 (0) | 2023.05.17 |
[SWEA/D3] 1873 상호의 배틀필드 (0) | 2023.05.16 |
[SWEA/D3] 9280 진용이네 주차타워 (0) | 2023.05.16 |