영호

[알고리즘] k번째 큰 수 (Python) 본문

Algorithm/구현

[알고리즘] k번째 큰 수 (Python)

0h0 2022. 6. 5. 18:53

문제 설명

 

파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의

파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런...

www.inflearn.com

1 ~ 100 사이의 자연수 카드 N장 중 3장을 뽑아 합한 수 들 중 K번째로 큰 수를 출력하는 문제입니다.

 

나의 풀이

  • 3장을 뽑을 때 각 카드들의 순서는 중요하지 않기 때문에 itertools의 combination을 사용해 풀었습니다.
    • combination을 잘 모르시면 이 글을 참고해주세요.
  • 중복 제거를 위해 set자료형을 사용했습니다.

 

Code

import sys
from itertools import combinations

# sys.stdin=open("input.txt", "r")
n, k=map(int, input().split())
nums = list(map(int, input().split()))

pick_3 = list(combinations(nums,3))

sum_list = [sum(i) for i in pick_3]

not_duple = set(sum_list)

answer = list(not_duple)
answer.sort(reverse=True)
print(answer[k-1])

 

Comments