현수는 1부터 100사이의 자연수가 적힌 N장의 카드를 가지고 있습니다. 같은 숫자의 카드가 여러장 있을 수 있습니다. 현수는 이 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록하려 고 합니다. 3장을 뽑을 수 있는 모든 경우를 기록합니다. 기록한 값 중 K번째로 큰 수를 출력 하는 프로그램을 작성하세요.
만약 큰 수부터 만들어진 수가 25 25 23 23 22 20 19......이고 K값이 3이라면 K번째 큰 값 은 22입니다.
▣ 입력설명
첫 줄에 자연수 N(3<=N<=100)과 K(1<=K<=50) 입력되고, 그 다음 줄에 N개의 카드값이 입력 된다.
▣ 출력설명
첫 줄에 K번째 수를 출력합니다. K번째 수는 반드시 존재합니다.
▣ 입력예제 1
10 3
13 15 34 23 45 65 33 11 26 42
▣ 출력예제 1
143
[해설코드]
n, k=map(int,input().split())
a=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(a[i]+a[j]+a[m])
res=list(res)
res.sort(reverse=True)
print(res[k-1])
*a=list(map(int,input().split())) : 리스트의 값을 입력 받을 때 쓰는 형식!
*3개의 수를 뽑았을 때 중복 될 수 있음->중복제거->set() {중복 제거 자료구조}
*set은 sort가 없다.

[나의 코드]
[미완성]
def plus(list):
sum=0
for i in list:
sum+=list[i]
return sum
def factorial(n):
return n*factorial(n-1)
def combination(n,r,ans):
result=[]
if n==r:
return result.append(1)
else :
result.append
N,K=map(int,input().split())
a=list[K]
for i in range (1,N+1):
a.append(map(int,input().split()))
# 조합을 사용하자 10C3
*조합함수를 구현하여 조합을 통해 숫자를 뽑고 리스트에 삽입해야 겠다고 생각.
*뽑은 각각의 3개의 숫자를 더하는 함수 구현.
<문제점> 비교적 쉬운 알고리즘에도 어렵게 구현을 생각함. 조합말고 다른 방법 구현에 대해 생각하지 못함.