728x90
반응형
내 생각
- 콤비네이션을 이용해야겠다고 생각했음
- 리스트의 3개 뽑은 콤비네이션을 구함
- 합을 계산해서 다른 리스트에 넣음
- ~번째 == idx-1
구현
#K번째 큰 수
from itertools import combinations
n,k = map(int,input().split())
arr = list(map(int,input().split()))
combi = combinations(arr,3)
ar = []
for c in combi:
ar.append(sum(c))
ar.sort(reverse=True)
print(ar)
ar = list(set(ar)) # 간과했던 부분
ar.sort(reverse=True)
print(ar)
print(ar[k-1])
다른사람 생각
- 삼중포문을 사용할 생각을 했음
- 여기서 내가 놓쳤는데, 숫자가 중복된 것이 있을 수 있었다.
- 따라서 애초에 res가 set구조임으로 set이라는 자료구조를 이용해서 중복되는 값을 지울 수 있다.
- 정렬 후 번째 구하기
코드
#K번째 큰 수
n,k = map(int,input().split())
arr = list(map(int,input().split()))
res = set()
for i in range(n):
for j in range(i+1,n):
for m in range(j+1,n):
res.add(arr[i]+arr[j]+arr[m])
res = list(res)
res.sort(reverse=True)
print(res[k-1])
728x90
반응형
'Dev > Algorithm' 카테고리의 다른 글
75. [TIL] 오늘의 배움일지 ( 21-09-17 ) (0) | 2021.09.17 |
---|---|
15. [알고리즘] 정다면체 (0) | 2021.05.02 |
13. [알고리즘] K번째 작은 수 (0) | 2021.04.29 |
12. [알고리즘] K번째 약수 (0) | 2021.04.29 |
[백준] 플러드필 (0) | 2021.04.01 |