์ฐธ๊ณ ) ์ด๊ฒ์ด ์ทจ์
์ ์ํ ์ฝ๋ฉํ
์คํธ๋ค with ํ์ด์ฌ ์ฑ
์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ๋ฌธ์ ์ ์ฝ๋์
๋๋ค.
๋ฐ๋ผ์ ๋ฌธ์ ๋ ์์ธํ๊ฒ ์ ์ง ์๊ณ , ๊ฐ๋จํ ์ค๋ช
๊ณผ ์ ์ฝ๋๋ง ์ฌ๋ฆฌ๊ฒ ์ต๋๋ค.
๋ง๋ค ์ ์๋ ๊ธ์ก (ebook๊ธฐ์ค p.513)
- N๊ฐ์ ๋์
- N๊ฐ์ ๋์ ์ผ๋ก ๋ง๋ค ์ ์๋ ์์ ์ ์ ๊ธ์ก ์ค ์ต์๊ฐ์๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ๊ตฌํ์์ค
##### ์
๋ ฅ์กฐ๊ฑด
- ์ฒซ์จ์ค ๋์ ์ ๊ฐฏ์ N๊ฐ (1 <= N <= 1000 )
- ๋์จ์ค, ํํ์ ๋จ์๋ฅผ ๋ํ๋ด๋ N๊ฐ์ ์์ฐ์.ํํ์ ๋จ์๋ 1000000์ดํ์ ์์ฐ์
<1์ฐจ์๋ ๋ฌธ์ ํ์ด>
์ฐ์ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ํ์ด์ ๋ํ ๊ฒฝํ๊ณผ ๋
ธํ์ฐ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ์ด๋ป๊ฒ๋ ํ์ด๋ณด์ ํ๊ณ , for๋ฌธ์ผ๋ก ๋๋ ค๋ฐ์๋ค.
์ผ๋จ, ์๊ฐํด๋ธ ๊ฒ์, '์ต์๊ฐ'์ ๊ตฌํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ซ์ ๋๊ฐ๋ก ๋ํด์ ๋์ค๋ ์ซ์๋ค๋ง ๋น๊ตํ๋ฉด ๋์ง์์๊น? ์๋ค. ํ์ง๋ง, ์๊ฐ์ ์ ํ์ด ์๋ ์ฝ๋ฉํ
์คํธ ํน์ฑ์ ์ญ์ ๋ด ์ฝ๋๋ ์ ํ์๊ฐ 1์ด ๋ด๋ก ๋์๊ฐ์ง ์๊ณ ๋งค์ฐ๋งค์ฐ ๋๋ ค์ ์ถ๋ ฅ์กฐ์ฐจ ์๋๋ ์ฝ๋๊ฐ ๋์ด๋ฒ๋ ธ๋ค. .. ใ
ใ
ใ
ใ
์๊ฐ๋ณต์ก๋ ๊ณ ๋ ค ์ํ๋ ํ๋์ฝ๋ฉ ์ ๋ฌธ๊ฐ๋ค ๋...
n = int(input())
money_type = list(map(int, input().split()))
def solution(n, money_type):
result = []
for i in range(0, n):
for j in range(i+1, n):
price = money_type[i] + money_type[j]
result.append(price)
result.sort()
while True:
for i in range(1, 10000000):
if i in result:
pass
else:
answer = i
break
return answer
solution(n, money_type)
<2์ฐจ์๋ ๋ฌธ์ ํ์ด : ์ ๋ต์ฝ๋>
##### greedy TIP!!
1. ์ต์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ๋ ๋ฌด์กฐ๊ฑด for๋ฌธ์ ๋๋ฆด๊ฒ ์๋๋ผ, ์ค๋ฆ ์ฐจ์์ผ๋ก ๋๊ณ ์์ ๊ฒ๋ถํฐ ๋น๊ตํด๊ฐ๋ฉด์ ํ์ด์ผํ๋ค.
2. ๋์ ํฉ๊ณผ ํํ๋จ์๋ฅผ ๋น๊ตํด๊ฐ๋ฉด์ ๊ตฌํด๋ณธ๋ค. ํํ๋จ์๊ฐ ๋์ ํฉ ๋ณด๋ค ํด ๊ฒฝ์ฐ, ๊ทธ ์ฌ์ด์ ๊ฐญ์ด ์กด์ฌํ๋ค๋ ๋ป์ด๋ค.
๋์ ํฉ์ for๋ฌธ์ผ๋ก ์ฐจ๊ทผ์ฐจ๊ทผ ๊ตฌํด๋๊ฐ๋ฉด์, ์ซ์ 1๋ถํฐ ๋น๊ตํด ๋๊ฐ๋ค๋ ๊ฒ์ด ํฌ์ธํธ์๋ค. ๋์ ํฉ๋ณด๋ค ํํ๋จ์๊ฐ ํด ๊ฒฝ์ฐ์ ๊ทธ ์ฌ์ด์ ๋ง๋ค ์ ์๋ ์๊ฐ ์กด์ฌํ๋ค๋ ๋ป์์ ํญ์ ๊ธฐ์ตํ๊ณ ๋ค์ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ์์๋ ๊ผญ ์ ์ฉํด์ ํ์ด๋ด์ผ๊ฒ ๋ค.
n = int(input())
money_type = list(map(int, input().split()))
def solution(n, money_type):
money_type.sort()
result = 1
for money in money_type:
if result < money:
break
result += money
return result
solution(n, money_type)