인프런 커뮤니티 질문&답변

박현묵님의 프로필 이미지
박현묵

작성한 질문수

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

3. K번째 큰 수

range 범위

작성

·

160

2

안녕하세요 강사님 강의 잘듣고있습니다 감사합니다~!

질문할 것이 있는데요.

삼중 for문에서 range의 범위가 모두 n으로 끝나는데

for i in range(n-2):
    for j in range(i+1, n-1):
        for k in range(j+1, n):

정확한 답을 내기 위해서는 범위를 위 처럼 가서 카드를 중복으로 뽑지않도록 보장하여야 할 것 같은데 혹시 어떻게 생각하시나요?

답변 3

0

아 그래서 종수님말대로 sum 자체가 실행이 안되니까 한개나 두개의 숫자만 더해지는 일도 없겠네요

0

저도 같은 질문이었는데, 

i가 3이되면 range(i+1,n) -> range(4,5)
j가 4가 되면 range(j+1,n) -> range(5,5)

가 되어서 바깥 for문은 돌지만 가장 안쪽 for문이 실행되지 않는거군요.

0

김태원님의 프로필 이미지
김태원
지식공유자

감사합니다^^

현묵님 코드처럼 하는게 제일 좋습니다.  

모두 n으로 끝나도 중복으로 뽑힐 일은 없기 때문에 편하게 다 n으로 했던것 같습니다.

    for i in range(5):
        for j in range(i+1, 5):
            for k in range(j+1, 5):
                print(i, j, k)

위 코드를 실행해보면 중복되지 않는다는 것 알 수 있을 겁니다.

박현묵님의 프로필 이미지
박현묵

작성한 질문수

질문하기