inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

7. 교육과정설계(큐)

7번 교육과정(큐) 질문드려요

207

킹코브라

작성한 질문수 11

0

7번 교육과정설계 답안을 보면
for i in range(n):
for x in plan:
if x ~~~
if x! ~~~~~
print()
else:
~~~~
이런식의 파이썬 코드인데 else 위치에 대해 궁금한점이 있습니다.
결국 for x in plan 을 돌면서 밑의 조건들을 수행하고
else부분은 이러한 for문 밑의 조건들과 반대가 되어 이렇게 파이썬 코드가 진행 되는 것 같은데 제가 생각한 부분이 맞나요?
 
보통 else문은 if문과 반대가 되었을때 쓰이는 것으로 알고 있어 else문의 위치가 많이 어색합니다.
 
혹시 else문을 if문의 반대에 쓰이는 것 뿐만 아니라 위 코드처럼 for문 전체에 반대가 되는 조건일 때도 쓰이는지 여쭤보고 싶습니다.
 
 

python 코테 준비 같이 해요!

답변 1

0

김태원

안녕하세요^^

파이썬에는 

if ~ else ~ 구문만 있는게 아니라 for ~ else ~ 구문도 존재합니다.

아래 내용을 읽어보세요.

 

python 코딩을 하면서 if - elif - else 문은 많이 알고 많이 사용하지만

for - else 문은 편리한 문법임에도 불구하고 많이 모르고 사용을 안 하는 경우가 많은것 같습니다.

for - else 문이 작동되는 과정을 간단히 설명하자면!

for문과 같이 사용되는 else문은 for문이 break 등으로 중간에 빠져나오지 않고 끝까지 실행 됐을 경우 else문이 실행되는 방식으로 진행됩니다.

간단한 코드 실행 결과를 예측해보며 이해해 봅시다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
for i in range(5):
    print(i, end=' ')
else:
    print("for문이 끝까지 실행됬습니다!")
 
 
 
 
for i in range(5):
    if i == 2:
        break
    print(i, end=' ')
else:
    print("for문이 끝까지 실행됬습니다!")
cs

 

다들 예상하셨겠지만 결과는 이렇습니다ㅎㅎ

 

 

 

for - else는 저희가 코딩하면서 flag를 사용하여 반복을 하면서 참, 거짓으로 가려낼때

flag변수를 따로 사용하지 않고도 구현이 가능해지고

이밖에도 다양하게 활용 가능한 알아두면 좋은 문법입니다.

 

 

어디까지나 제 풀이방식이긴 하지만 이 문제를 python for-else를 사용하여 풀어보면 좋을거 같습니다.

 

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

1

104

2

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

0

112

3

문제가 어디있나요?

0

87

2

변수 or 함수명

0

81

1

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

0

72

1

AA.py 책점 에러

0

65

1

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

0

117

2

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

0

118

1

아나그램 비교 코드

0

126

2

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

0

164

2

문제 링크가있나여?

0

155

2

채점기 Time Limit Exceeded 오류 문의

1

183

2

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

0

135

2

제 코드 좀 봐주세요

0

155

1

예외가 존재할 가능성?

0

100

1

3번이 안풀립니다

0

99

0

5번 틀림

0

125

0

오류원인?

0

106

0

리스트 선언

0

117

1

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

0

115

1

알고리즘

0

75

1

코딩테스트

0

98

1

DFS 순서 질문드립니다.

0

139

2

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

0

103

1