728x90
๋ฐ์ํ
๋ฌธ์
๊ณตํฌ๋๊ฐ X์ธ ๋ชจํ๊ฐ๋ ๋ฐ๋์ X๋ช ์ด์์ผ๋ก ๊ตฌ์ฑํ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ์ฐธ์ฌํด์ผ ํ๋ค.
์ต๋ ๋ช๊ฐ์ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ๋ง๋ค ์ ์์๊น?
์ ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ ์ค์ ๋ชจํ๊ฐ์ ์ N(1<= N <=100,000)
- ๋์งธ ์ค์ ๊ฐ ๋ชจํ๊ฐ์ ๊ณตํฌ๋์ ๊ฐ์ N ์ดํ์ ์์ฐ์๋ก ์ฃผ์ด์ง๋ฉฐ, ๊ฐ ์์ฐ์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ
์ถ๋ ฅ์กฐ๊ฑด
- ์ฌํ์ ๋ ๋ ์ ์๋ ๊ทธ๋ฃน ์์ ์ต๋๊ฐ ์ถ๋ ฅ
์ ๋ ฅ์์
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
๋ฐ์ํ