inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

11. 격자판 회문수

코드 질문 있습니다.

174

송진영

작성한 질문수 7

0

n_list = [list(map(intinput().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로 가는지 궁금합니다.
 
 

python 코테 준비 같이 해요!

답변 1

0

김태원

안녕하세요^^

파이썬에서는 for ~ else ~ 구문도 있습니다. for문이 break 없이 정상적으로 끝나면 else 구문을 하는 코드입니다.

그리고 위에 논리적으로 맞다고 하시는  if ~ else ~ 로 하면 세로로 된 회문을 찾지 못할 것 같습니다.  본인의 풀코드를 봐야 알겠지만 세로로 된 회문을 찾는지 확인해보세요.

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

1

104

2

스택에서 ')'을 만나는 경우

0

108

3

문제가 어디있나요?

0

85

2

변수 or 함수명

0

76

1

침몰하는 타이타닉 문제 질문입니다

0

71

1

AA.py 책점 에러

0

63

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

115

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

115

1

아나그램 비교 코드

0

122

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

163

2

문제 링크가있나여?

0

153

2

채점기 Time Limit Exceeded 오류 문의

1

177

2

동적계획법은 사용하는 문제

0

132

2

제 코드 좀 봐주세요

0

154

1

예외가 존재할 가능성?

0

100

1

3번이 안풀립니다

0

98

0

5번 틀림

0

124

0

오류원인?

0

104

0

리스트 선언

0

115

1

침몰하는 타이타닉(그리디) 문제 질문

0

114

1

알고리즘

0

72

1

코딩테스트

0

98

1

DFS 순서 질문드립니다.

0

134

2

left, right를 사용한 풀이법에 대한 질문입니다

0

93

1