๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Problem Solving/BAEKJOON

[baekjoon]python #5545 ์ตœ๊ณ ์˜ ํ”ผ์ž

by DevIseo 2022. 5. 30.

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

 

๋Œ“๊ธ€