์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ์ฐ์ ์์ํ
- ํ๋ก ํธ์ค๋
- ๋ฆฌ์กํธ
- ์ฝ๋ฉํ ์คํธ
- ์คํ๋ง
- ํ๋ก๊ทธ๋๋ฐ
- ๊ฐ๋ฐ์
- ์ปด๊ณต
- ๋ฐฑ์ค
- ๋ชจ๋ฐ์ผ์ฑํ๋ก๊ทธ๋๋ฐ
- ๋ฐฑ์ค1436
- SSE
- spring
- ๋ฐฑ์๋
- ์ฝ๋ฉ
- ๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ
- ์ปด๊ณต์
- ๋ฆฌ์กํธ๋ค์ดํฐ๋ธ
- ๊ทธ๋ฆฌ๋
- ์๋ฃ๊ตฌ์กฐ
- ์น๊ฐ๋ฐ๊ธฐ๋ก
- ๋จ์ํ ์คํธ
- ๋ฐฑ์คํ์ด
- ์ดํญ๊ณ์
- ์น๊ฐ๋ฐ
- ์ปดํจํฐ๊ณตํ
- ChatGPT
- boj11653
- ์๊ณ ๋ฆฌ์ฆ
- ํ์ด์ฌ
- Today
- Total
๐ป๐ญ๐ง๐
BOJ 2437 : ์ ์ธ (Python) ๋ณธ๋ฌธ
๋ฌธ์
https://www.acmicpc.net/problem/2437
2437๋ฒ: ์ ์ธ
ํ๋์ ์ํ ์ ์ธ์ ์ด์ฉํ์ฌ ๋ฌผ๊ฑด์ ๋ฌด๊ฒ๋ฅผ ์ธก์ ํ๋ ค๊ณ ํ๋ค. ์ด ์ ์ธ์ ์ ํ์ ๋์๋ ๋ฌผ๊ฑด์ด๋ ์ถ๋ฅผ ์ฌ๋ ค๋๋ ์ ์๊ฐ ๋ฌ๋ ค ์๊ณ , ์ํ์ ๊ธธ์ด๋ ๊ฐ๋ค. ๋ํ, ์ ์ธ์ ํ์ชฝ์๋ ์ ์ธ์ถ๋ค๋ง ๋
www.acmicpc.net
์ฝ๋
import sys
input = sys.stdin.readline
n = int(input())
array= list(map(int, input.split()))
array.sort()
target = 1
for i in array:
if target < i:
break
target += i
print(target)
ํ์ด
target ์ด๋ผ๋ ๋ณ์์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ์ ์ธ์ถ๋ค์ ์ฐจ๋ก๋๋ก ๋ํ๋ค. ์ด๋ target์ด ํด๋น ์ ์ธ์ถ๋ณด๋ค ์์ ๊ฒฝ์ฐ์๋ ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๋ค. ์๋ํ๋ฉด target์ด ํด๋น ์ ์ธ์ถ๋ณด๋ค ์์ผ๋ฉด ๊ทธ ์ฌ์ด์ ๋ฌด๊ฒ๋ฅผ ์ด ์ ์๋ ์ซ์๊ฐ ๋ง๋ค์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.
target์ ์ด๊ธฐ ๊ฐ์ 1์ด๋ค. → ๋ง์ฝ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ ์ธ์ถ๊ฐ 1์ด ์๋๋ผ๋ฉด ๋ฌด๊ฒ๊ฐ 1์ธ ๊ฒฝ์ฐ๋ ๋ฌด์กฐ๊ฑด ์ด ์ ์๊ธฐ ๋๋ฌธ์ 1์ด ๊ฐ์ฅ ์์ ์ธก์ ํ ์ ์๋ ๋ฌด๊ฒ๊ฐ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
if target < i:
break
๊ทธ๋์ ๋ฐ๋ณต๋ฌธ ์ฒซ๋ฒ์งธ๋ถํฐ ์ด if๋ฌธ์ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ์ด ์ข ๋ฃ๋๊ณ ์ ๋ต์ target์ ์ด๊ธฐ ๊ฐ์ธ 1์ด ๋๋ค.
๊ทธ ์ธ์๋ ์์์ ์ค๋ช ํ ๋ฐฉ๋ฒ๋๋ก ์งํ๋๋ค.
๊ธฐํ
์ฒ์์๋ ์ ์ธ์ถ๋ค์ ์ดํฉ์์ ๊ฐ์ฅ ํฐ ์ ์ธ์ถ์ ๋ฌด๊ฒ๋ถํฐ ์ฐจ๋ก๋๋ก ๋นผ๋ฉด์ ์ธก์ ํ ์ ์๋ ๋ฌด๊ฒ๋ฅผ ์ฐพ์ผ๋ ค๊ณ ํ๋๋ฐ ๋น์ฐํ์ง๋ง ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค. ๋ ๋ค ๊ตฌํํ๋ ค๊ณ ํ๊ธฐ๋ณด๋ค๋ ์ฌ์ด ๋ฐฉ๋ฒ์ ์๊ฐํด๋ด๋๋ฐ ๋ ์๊ฐ์ ๋ง์ด ์์ ๋ถ์ด์ผ ํ ๊ฒ ๊ฐ๋ค.
์๊ฐ์ด๊ณผ๊ฐ ๋ ์ฝ๋
import sys
input = sys.stdin.readline
n = int(input())
weight = list(map(int, input().split()))
weight.sort(reverse = True)
if weight.count(1)==len(weight):
print(sum(weight)+1)
sys.exit()
if weight[len(weight)-1] >= 2:
print(weight[len(weight)-1]-1)
sys.exit()
for i in range(1,sum(weight)):
integer = i
sub = 0
for w in range(n):
if weight[w] <= integer:
if integer > sum(weight)-sub:
print(i)
sys.exit()
integer -= weight[w]
sub += weight[w]
if integer == 0:
break
if integer > 0:
print(i)
sys.exit()
'์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ 10775 : ๊ณตํญ (Python) (0) | 2023.02.28 |
---|---|
BOJ 1781 : ์ปต๋ผ๋ฉด (Python) (0) | 2023.02.28 |
BOJ 1339 : ๋จ์ด ์ํ (Python) (0) | 2023.02.20 |
BOJ 1092 : ๋ฐฐ (Python) (0) | 2023.02.20 |
BOJ 1715 : ์นด๋ ์ ๋ ฌํ๊ธฐ (Python) (0) | 2023.02.19 |