๐ ๏ธ ๋ฌธ์ ๐ ๏ธ
๐๏ธ ์ค๋ช ๐๏ธ
์ฐ์ ์์ ์ค์์ ์ถ [1, 1, 2]๋ง ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํด๋ณด์.
๊ทธ๋ฌ๋ฉด ์ธก์ ํ ์ ์๋ ๋ฌด๊ฒ๋ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.
๋ค๋ฅธ ์์๋ก [1, 2, 3]์ผ๋ก ์๊ฐํด๋ณด๋ฉด,
1 = 1
2 = 2
3 = 3
4 = 1+3
5 = 2+3
6 = 1+2+3
์์ ๊ฐ์ด ์ธก์ ํ ์ ์๋ค.
์ฆ, ๊ฐ์ง๊ณ ์๋ ์ถ๋ค์ ๋ฌด๊ฒ๋ฅผ ํฉํ ๊ฐ ์ดํ์ ๊ฐ๋ค์ ์ธก์ ํ ์ ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๋จ, ์ถ์ ๋ฌด๊ฒ๋ค์ด ์ ๋ ฌ์ด ๋์ด์์ด์ผ ํ๋ฉฐ ์ถ์ ์ถ ์ฌ์ด์ ๋ฌด๊ฒ ์ฐจ์ด๊ฐ ํฌ๊ฒ ๋๋ฉด ์๋๋ค.
์ฌ๊ธฐ์ ์ถ ์ฌ์ด์ ๋ฌด๊ฒ ์ฐจ์ด๊ฐ ์ผ๋ง๋งํผ ์ฐจ์ด๊ฐ ๋๋ฉด ์๋๋์ง๋ฅผ ์๊ฐํด๋ด์ผํ๋ค.
๋ฌธ์ ์์ ์ฃผ์ด์ง ์์๋ก ํ์ฌ [1, 1, 2, 3]์ ์ถ๋ฅผ ๊ฐ์ง๊ณ ์์ด 7๊น์ง ์ธก์ ํ ์ ์๋ค๊ณ ํ์.
๋ค์ ์ถ๊ฐ ํ์ฌ ์ธก์ ํ ์ ์๋ 8๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ 6์ด๋ฉด 7 + 6 = 13 ๊น์ง ์ธก์ ํ ์ ์์ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ ๊ทธ๋ฆผ์์์ ๊ฐ์ด [1, 1, 2, 3, 6, 7]์ 20๊น์ง ์ธก์ ํ ์ ์๋๋ฐ ๋ค์ ์ถ๊ฐ 30์ด๋ฉด 21๋ถํฐ 29๊น์ง๋ ์ธก์ ํ ์ ์์ ๊ฒ์ด๋ค.
์ด์ ๊ฐ์ ๊ท์น์ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
1. ์ถ์ ๋ฌด๊ฒ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
2. ๊ฐ์ฅ ์์ ์ถ์ ๋ฌด๊ฒ๊ฐ 1์ด ์๋๊ฒฝ์ฐ
→ ์ธก์ ํ ์ ์๋ ๊ฐ์ฅ ์์ ์์ ์ ์ ๋ฌด๊ฒ๋ 1์ด๋ค.
3. ๊ฐ์ฅ ์์ ์ถ์ ๋ฌด๊ฒ๊ฐ 1์ผ ๊ฒฝ์ฐ
→ [(t : ํ์ฌ ์ธก์ ํ ์ ์๋ ๊ฐ์ฅ ํฐ ๋ฌด๊ฒ) + 1 = ํ์ฌ ์ธก์ ํ ์ ์๋ ๊ฐ์ฅ ์์ ๋ฌด๊ฒ] ์ ๋ค์ ์ถ์ ๋ฌด๊ฒ ๋น๊ต
→ t + 1 >= ๋ค์ ์ถ์ ๋ฌด๊ฒ : t ์ฆ๊ฐ
→ ์๋ ๊ฒฝ์ฐ : break
๐ ํ์ด ๐
import sys
input = sys.stdin.readline
n = int(input())
nums = list(map(int, input().split()))
nums.sort()
if nums[0] > 1 :
print(1)
else :
t = nums[0]
for i in range(1, n) :
if t + 1 >= nums[i] :
t += nums[i]
else :
break
print(t + 1)
'ProgramSolve > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 13270๋ฒ - ํผ๋ณด๋์น ์นํจ (Java) (2) | 2023.12.06 |
---|---|
[BOJ] 12851๋ฒ - ์จ๋ฐ๊ผญ์ง2 (Java) (0) | 2023.12.04 |
[BOJ] 15657๋ฒ - N๊ณผM(8) (Python) (1) | 2023.10.05 |
[BOJ] 1911๋ฒ - ํ๊ธธ ๋ณด์ํ๊ธฐ (Python) (0) | 2023.09.07 |
[BOJ] 13549๋ฒ - ์จ๋ฐ๊ผญ์ง3 (Python) (0) | 2023.09.05 |