K๋ฒˆ์งธ ํฐ ์ˆ˜

๐Ÿ“„ ๋ฌธ์ œ

ํ˜„์ˆ˜๋Š” 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๋ฒˆ์งธ ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ
10 3
13 15 34 23 45 65 33 11 26 42

โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ
143

๐Ÿงž ํ’€์ด

๋”๋ณด๊ธฐ

ํ’€์ด

'''
[์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋ฌธ]

K๋ฒˆ์งธ ํฐ ์ˆ˜

ํ˜„์ˆ˜๋Š” 1๋ถ€ํ„ฐ 100์‚ฌ์ด์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ ํžŒ N์žฅ์˜ ์นด๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ™์€ ์ˆซ์ž์˜ ์นด๋“œ๊ฐ€ ์—ฌ๋Ÿฌ์žฅ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์ˆ˜๋Š” ์ด ์ค‘ 3์žฅ์„ ๋ฝ‘์•„ ๊ฐ ์นด๋“œ์— ์ ํžŒ ์ˆ˜๋ฅผ ํ•ฉํ•œ ๊ฐ’์„ ๊ธฐ๋กํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
3์žฅ์„ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋กํ•œ ๊ฐ’ ์ค‘ K๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

25, 25, 23, 23, 22, 20, 19... K๊ฐ’์ด 3์ด๋ผ๋ฉด K๋ฒˆ์งธ ํฐ ๊ฐ’์€ 22
'''

# ์ž…๋ ฅ: ์ฒซ์งธ ์ค„ n, k
# ์ž…๋ ฅ: ๋‘˜์งธ ์ค„ n๊ฐœ์˜ ์นด๋“œ๊ฐ’ ์ž…๋ ฅ

# ์ถœ๋ ฅ: k๋ฒˆ์งธ ์ˆ˜ ์ถœ๋ ฅ

from itertools import combinations                              # itertools ํŒจํ‚ค์ง€์—์„œ combinations ๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

n, k = map(int, input().split())                                # n, k ์ •์ˆ˜ ํ• ๋‹น
n_list = input().split()                                        # n_list์— ์ˆซ์ž ์ž…๋ ฅํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋กœ ํ• ๋‹น

data = combinations(n_list, 3)                                  # combinations() ํ•จ์ˆ˜ ํ†ตํ•ด, n_list์˜ ์š”์†Œ 3๊ฐœ์”ฉ ๋ฌถ์€ ์กฐํ•ฉ data์— ํ• ๋‹น
a_list = []                                                     # ์ •๋‹ต์„ ๋‹ด์„ a_list ๋นˆ ๋ฆฌ์ŠคํŠธ ํ• ๋‹น

for i in data:                                                  # data์˜ ๊ฐ ์š”์†Œ i ๋ฐ˜๋ณต
    a_list.append(sum((int(i[0]), int(i[1]), int(i[2]))))       # ๊ฐ ์š”์†Œ์˜ ํ•ฉ ๋”ํ•˜์—ฌ a_list์— ํ• ๋‹น

tmp = set(a_list)                                               # a_list๋ฅผ set ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ tmp์— ํ• ๋‹น
a_list2 = list(tmp)                                             # a_list2๋Š” ๊ธฐ์กด์˜ list๋ฅผ set์œผ๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ list๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ
a_list2.sort(reverse=True)                                      # a_list2 ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

print(a_list2[k-1])                                             # a_list2์˜ k-1 ์ธ๋ฑ์Šค์˜ ๊ฐ’ ์ถœ๋ ฅ

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

# K๋ฒˆ์งธ ํฐ ์ˆ˜

n, k = map(int, input().split())
a = list(map(int, input().split()))

# ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
res = set()

# ์ค‘๋ณต ๋ฐฉ์ง€
# ์‚ผ์ค‘ ๋ฐ˜๋ณต๋ฌธ
# set์€ append()๊ฐ€ ์•„๋‹Œ add()

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

# set์€ sort()๊ฐ€ ์—†์Œ
# list๋กœ ๋ฐ”๊ฟ”์„œ ์ •๋ ฌํ•ด์ค˜์•ผ ํ•จ
# sort(reverse=True) ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
res = list(res)
res.sort(reverse=True)
print(res[k-1])

 

 

+ Recent posts