가자미의 개발이야기

[알고리즘] K번째 큰 수 본문

Computer Science/알고리즘

[알고리즘] K번째 큰 수

가자미 2021. 5. 16. 00:41

#문제: 

첫 줄에 자연수 N(3<=N<=100)과 K(1<=K<=50) 입력되고, 그 다음 줄에 N개의 카드값이 입력 된다.

만약 큰 수부터 만들어진 수가 25 25 23 23 22 20 19......이고 K값이 3이라면 K번째 큰 값 은 22입니다.

 

▣ 출력설명 첫 줄에 K번째 수를 출력합니다. K번째 수는 반드시 존재합니다.

 

▣ 입력예제 1

10 3

13 15 34 23 45 65 33 11 26 42

 

▣ 출력예제 1

143

import sys
#sys.stdin=open("input.txt", "rt")

N, K = map(int, input().split())
arr=list(map(int,input().split()))
arr2=[];
for i in range(0,len(arr)-2):
    for p in range(i+1, len(arr)-1):
        for q in range(p+1, len(arr)):
           arr2.append(arr[i]+arr[p]+arr[q])

arr2=set(arr2)
arr2=list(arr2)

arr2.sort()
arr2.reverse()

print(arr2[K-1])

 

#몰랐거나 검색했던 내용

 

1. 파이썬에서 배열 선언

arr2=[];

 

2. 배열의 길이 구하는 법

arr.length()가 아닌 len(arr)

 

3. 배열의 중복을 없애는 법

리스트를 집합으로 만드는 set()함수를 사용

 

4. 배열의 index()함수

index함수는 인자로 받은 값이 존재하는 인덱스를 반환.

나는 인덱스를 인자로 받아 해당 값을 반환이라고 오해.