-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
코드 질문 있습니다.
21.09.14 22:21 작성 조회수 104
0
n_list = [list(map(int, input().split())) for _ in range(7)]
print(n_list)
cnt = 0
for i in range(3):
for j in range(7):
tmp = n_list[j][i : i + 5]
if tmp == tmp[::-1]:
cnt += 1
for k in range(2):
if n_list[i + k][j] != n_list[i + 5 - k - 1][j]:
break
else:
cnt += 1
print(cnt)
여기 중
for k in range(2):
if n_list[i + k][j] != n_list[i + 5 - k - 1][j]:
break
여기까진 이해가 가는데
만약 else면
if n_list[i + k][j] != n_list[i + 5 - k - 1][j]:
이 부분에 맞춰서
else도
for k in range(2):
if n_list[i + k][j] != n_list[i + 5 - k - 1][j]:
break
else:
cnt += 1
이런식으로 되어야 논리적으로 맞지 않을까 싶은데
왜 for else로 가는지 궁금합니다.
답변을 작성해보세요.
0
김태원
지식공유자2021.09.17
안녕하세요^^
파이썬에서는 for ~ else ~ 구문도 있습니다. for문이 break 없이 정상적으로 끝나면 else 구문을 하는 코드입니다.
그리고 위에 논리적으로 맞다고 하시는 if ~ else ~ 로 하면 세로로 된 회문을 찾지 못할 것 같습니다. 본인의 풀코드를 봐야 알겠지만 세로로 된 회문을 찾는지 확인해보세요.
답변 1