inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

k번째 큰 수에서 반복문 관련 질문

해결된 질문

203

덜더장이

작성한 질문수 3

0

안녕하세요 얼마 전부터 강의를 듣기 시작했는데 모르는 것이 너무 많아 매일이 좌절의 연속입니다ㅠ

k번째 큰 수에서 코드가 선생님의 정답 코드와 다른 부분이 있는데 둘 다 맞는것인지 궁금해서 질문드립니다.

import sys
#sys.stdin=open("in1.txt", "rt")

N,K = map(int, input().split())
lst=list(map(int, input().split()))
sum_lst=set()

for i in range(N-2):
    for j in range(i+1, N-1):
        for k in range(j+1, N):
            sum_lst.add(lst[i]+lst[j]+lst[k])
sum_lst=list(sum_lst)
sum_lst.sort(reverse=True)
print(sum_lst[K-1])

 

위 코드 속 반복문에서 반복문의 범위를 저는 각각 N-2, N-1, N까지 반복하도록 했습니다.

반면 선생님의 코드에서는 모두 범위를 N까지 주셨는데 이렇게 놓으면 최종 루프에서는 N번째 값을 3번 더하게 되는것 아닌가요? 

제가 맞게 이해했는지 알려주시면 감사하겠습니다.

python 코테 준비 같이 해요!

답변 4

0

덜더장이

정말 감사합니다! 확실히 이해가 되었습니다

0

김태원

 range(start, stop, step) 3개의 인자로 구성되며 step값만큼 증가감을 해 start에서 시작해 stop값 전까지 range객체를 미리 만들어 놓고 for 문에 대응되는 것입니다. 즉 start에서 stop로 step값만큼 증가감을 할 수 없으면 그냥 빈 객체가 생성되고 for문은 반복하지 않습니다. range(10, 9) 와 같이 하면 빈객체가 생성됩니다. step값이 생략되면 기본값으로 1입니다.

print(list(range(10, 9))) 를 출력하면 빈리스트가 출력됩니다.

0

덜더장이

답변 감사합니다! 추가 질문인데 i값이 n번째를 가리키면 j는 n+1을 가리켜야 해서 인덱싱 에러? 가 일어나야 되는거 아닌가 생각했는데 그게 아닌가보네요.. 제가 반복문을 제대로 이해하지 못하고 있는걸까요?

0

김태원

안녕하세요^^

i값이 마지막 n번째를 가르킨다면 그 안쪽 for문인 j가 n번째를 가르킬 수 있을 까요? 

위에 님코드 처럼 하는게 제일 좋습니다. 하지만 영상처럼 한다고 해서 i, j, k가 모두 n번째를 인덱싱하는 일은 없습니다.

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

0

76

2

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

0

78

3

문제가 어디있나요?

0

64

2

변수 or 함수명

0

61

1

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

0

56

1

AA.py 책점 에러

0

57

1

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

0

111

2

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

0

110

1

아나그램 비교 코드

0

116

2

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

0

160

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

163

2

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

0

126

2

제 코드 좀 봐주세요

0

148

1

예외가 존재할 가능성?

0

97

1

3번이 안풀립니다

0

93

0

5번 틀림

0

113

0

오류원인?

0

98

0

리스트 선언

0

106

1

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

0

109

1

알고리즘

0

69

1

코딩테스트

0

92

1

DFS 순서 질문드립니다.

0

124

2

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

0

91

1