https://www.acmicpc.net/problem/5545
5545๋ฒ: ์ต๊ณ ์ ํผ์
์ฒซ์งธ ์ค์ ํ ํ์ ์ข ๋ฅ์ ์ N(1 ≤ N ≤ 100)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ๋์ฐ์ ๊ฐ๊ฒฉ A์ ํ ํ์ ๊ฐ๊ฒฉ B๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ A, B ≤ 1000) ์ ์งธ ์ค์๋ ๋์ฐ์ ์ด๋ C๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ C ≤ 10000) ๋ค์ ์ค
www.acmicpc.net
๋ฐฑ์ค 5545 : ์ต๊ณ ์ ํผ์ (ํ์ด์ฌ)
N = int(input()) #ํ ํ์ข
๋ฅ์ ์
A,B=map(int,input().split()) #๋์ฐ๊ฐ๊ฒฉ, ํ ํ๊ฐ๊ฒฉ
C = int(input()) #๋์ฐ์ ์ด๋
topping = [] #ํ ํ ์ด๋ LIST
result=0 #1์๋น ์ต๋ ์ด๋์ ์ป๊ธฐ์ํด 0์ผ๋ก ์ด๊ธฐํ
for i in range(N):
topping.append(int(input()))
topping.sort(reverse=True) #๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ธฐ ์ํด reverse๋ก sort
for i in range(len(topping)+1):
price = A+B*i #๋ฌธ์ ์์ ์ ์๋ ์ (๊ฐ๊ฒฉ)
# print(topping[:i])
result = max(result, (C+sum(topping[:i]))//price) #result์ 1์๋น ์นผ๋ก๋ฆฌ ์ค ํฐ ๊ฐ์ผ๋ก ๊ฐฑ์ !
print(result) #์ถ๋ ฅ
์ด ๋ฌธ์ ์์ ์ฌ์ฉ๋ ์๊ณ ๋ฆฌ์ฆ
2022.05.13 - [Problem Solving/ALGORITHM] - ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm)
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm)
๊ทธ๋ฆฌ๋(Greedy) ์๊ณ ๋ฆฌ์ฆ ๐๊ฐ๋ - ํ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, ์ฌ๋ฌ ๊ฒฝ์ฐ ์ค ํ๋๋ฅผ ๊ฒฐ์ ํด์ผ ํ ๋ ๊ทธ ์๊ฐ์ ์ต์ ์ด๋ผ๊ณ ์๊ฐ๋๋ ๊ฒ์ ์ ํํด ๋๊ฐ๋ ๋ฐฉ์์ผ๋ก ์งํํ์ฌ ์ต์ข ์ ์ธ ํด๋ต์ ๋
luminous24.tistory.com
'Problem Solving > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[baekjoon]python #2164 ์นด๋2 (0) | 2022.05.31 |
---|---|
[baekjoon]python #10828 ์คํ, #10845 ํ, #10866 ๋ฑ (0) | 2022.05.31 |
[baekjoon]python #11055 ๊ฐ์ฅ ํฐ ์ฆ๊ฐ ๋ถ๋ถ ์์ด (0) | 2022.05.20 |
[baekjoon]python #11053 ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด (0) | 2022.05.20 |
[baekjoon]python #7562 ๋์ดํธ์ ์ด๋ (0) | 2022.05.20 |
๋๊ธ