inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3. K번째 큰 수

제가 질문을 잘 이해를 못하는지

해결된 질문

244

thehrto12

작성한 질문수 7

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

 

1부터 100까지의 자연수 중에 3장을 뽑아서 그 경우의 수 중에서 k번째로 큰 합산을 구하는 거라고 이해를 했습니다.

 

그래서 먼저 중복을 제거해서 내림차순으로 정렬후에,

k번째로 큰 합산이니까 0, 1 번째 합산을 빼놓고 2번째 인덱스를 시작기준으로 k번째의 원소의 합을 더하면 되는게 아닌지 질문드립니다.

 

 

import sys
sys.stdin=open('input.txt', 'rt')
n, k = map(int, input().split())
arr = list(map(int, input().split()))
distinct_arr = list(set(arr))
distinct_arr.sort(reverse=True)
print(k)
print(distinct_arr)
result = int(distinct_arr[0])+int(distinct_arr[1])+int(distinct_arr[k+1])

    
print(result)

 

 

 

python 코딩-테스트

답변 1

0

김태원

안녕하세요^^

n개의 숫자가 있다면 여기서 임의로 3개를 뽑아 그 3개의 수를 합한 값을 기록하는 것입니다.

즉 기록된 숫자의 개수는 nC3개의 숫자가 나올겁니다. 이 중에서 k번째로 큰 수를 찾는 것입니다. 이때 k번째 큰 수를 찾을 때 중복된 값을 한 번만 카운팅해서 k번째 큰 수를 찾으라는 의미입니다.

중복된 값의 의미를 예를 들면, 만약 1, 2, 3, 4, 5, 6, 7 중에서 3개를 뽑을 때 1, 4, 7를 뽑으면 합이 12이고, 1, 5, 6을 뽑을때도 합이 12로 같아서 12가 중복되는 경우가 있습니다. 이때 k번째를 따질때 12는 한 번만 번째를 카운팅하라는 것입니다.

0

thehrto12

아.. 중복된 값을 한번만 카운팅하라는 말씀이시군요,, 그럼 중복된 합산이 여러개가 있어도 무조건 두번째를 채택하라는 말씀이실까요? 답변 감사합니다

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

1

78

2

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

0

79

3

문제가 어디있나요?

0

67

2

변수 or 함수명

0

61

1

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

0

58

1

AA.py 책점 에러

0

60

1

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

0

111

2

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

0

110

1

아나그램 비교 코드

0

116

2

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

0

161

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

165

2

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

0

126

2

제 코드 좀 봐주세요

0

148

1

예외가 존재할 가능성?

0

97

1

3번이 안풀립니다

0

93

0

5번 틀림

0

115

0

오류원인?

0

98

0

리스트 선언

0

107

1

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

0

110

1

알고리즘

0

69

1

코딩테스트

0

92

1

DFS 순서 질문드립니다.

0

129

2

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

0

91

1