๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๐Ÿ’œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

[๊ทธ๋ฆฌ๋””] ๋ชจํ—˜๊ฐ€๊ธธ๋“œ (ํŒŒ์ด์ฌ)

by eyes from es 2023. 10. 2.
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

๊ณตํฌ๋„๊ฐ€ X์ธ ๋ชจํ—˜๊ฐ€๋Š” ๋ฐ˜๋“œ์‹œ X๋ช… ์ด์ƒ์œผ๋กœ ๊ตฌ์„ฑํ•œ ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์— ์ฐธ์—ฌํ•ด์•ผ ํ•œ๋‹ค.

์ตœ๋Œ€ ๋ช‡๊ฐœ์˜ ๋ชจํ—˜๊ฐ€ ๊ทธ๋ฃน์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„๊นŒ?

์ž…๋ ฅ์กฐ๊ฑด

  1. ์ฒซ์งธ ์ค„์— ๋ชจํ—˜๊ฐ€์˜ ์ˆ˜ N(1<= N <=100,000)
  2. ๋‘˜์งธ ์ค„์— ๊ฐ ๋ชจํ—˜๊ฐ€์˜ ๊ณตํฌ๋„์˜ ๊ฐ’์„ N ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๋กœ ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ ์ž์—ฐ์ˆ˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„

์ถœ๋ ฅ์กฐ๊ฑด

  1. ์—ฌํ–‰์„ ๋– ๋‚  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ฃน ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’ ์ถœ๋ ฅ

 

์ž…๋ ฅ์˜ˆ์‹œ

5

2 3 1 2 2

 

์ถœ๋ ฅ์˜ˆ์‹œ

2


 

import sys

N = int(input())

input_lists = list(map(int,sys.stdin.readline().split()))

input_lists.sort()

group = 0
N = N-1

while N>0:    
    max = input_lists[N]
    N = N -max
    group +=1

print(group)

 

๋ฌธ์ œ ํ•ด์„ค

for๋ฌธ์„ ํ™œ์šฉํ•œ๋‹ค๋ฉด O(N)์˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฆฌ์ŠคํŠธ ์ „์ฒด๋ฅผ ๋Œ์ง€๋งŒ max(๊ทธ๋ฃน์— ํฌํ•จ๋œ ์ธ์› ์ˆ˜)๋งŒํผ ๋›ฐ์–ด๋„˜์œผ๋ฉด

์ตœ๋Œ€ O(N)์˜ ์‹œ๊ฐ„์œผ๋กœ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•