[인프런](python) K번째 큰 수

berry ·2021년 5월 6일
0

Algorithm

목록 보기
15/77
post-thumbnail


🏁 내 풀이

import random
from itertools import combinations

def solution(n,k):
    n, k = map(int,input().split())
    n_list = [random.randint(1, 100) for _ in range(n)]
    answer = set() # 중복 제거
    for i in list(combinations(n_list,3)):
        answer.append(sum(i))
        answer.sort(reverse=True)
    return answer[k-1]
    

+++
1) random, combinations 내장 함수 사용
2) reverse=True 로 내림차순 (default: 오름차순)


🧩 다른 풀이

  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])

📌

1) res=set()으로 먼저 중복 방지
2) for i,j,m을 사용해서 중복 숫자처리 방지

profile
Engineer

0개의 댓글