<๋ฌธ์ ๋งํฌ>
https://www.acmicpc.net/problem/1421
<ํ์ด ์ ๋ต>
1. ๊ธฐ๋ณธ์ ์ผ๋ก ๋๋ฌด๊ฐ 50๊ฐ ์ดํ๊ณ ๋๋ฌด ๊ธธ์ด๊ฐ 10000์ดํ๋ผ์ O(N^2)์ฌ๋ ๋๋ต 50 * 10000 = 50๋ง ๋ฒ ์ฐ์ฐ์ ํด์ ์์ ํ์์ผ๋ก ํ ์ ์์ต๋๋ค.
2. ๊ธธ์ด๊ฐ 1๋ถํฐ ๊ฐ์ฅ ๊ธด ๋๋ฌด๊น์ง ๋ชจ๋ ์๋ผ๋ณด๋ฉฐ ์ต๋ ์ด์ต์ ๊ตฌํ๋ฉด ๋๋๋ฐ 2๊ฐ์ง ํจ์ ์ด ์์ต๋๋ค.
3. ์ฒซ์งธ, ๋๋ฌด๊ฐ ๋จ๋ ๋ถ๋ถ ์์ด ๋ฑ ์๋ฆด ๊ฒฝ์ฐ์๋ ์๋ฆฐ ํ์๋ฅผ 1 ๋นผ์ค์ผ๋ฉ๋๋ค (ex ๊ธธ์ด๊ฐ 8์ธ ๋๋ฌด๋ฅผ 2์ ๊ธธ์ด๋ก ์๋ฅผ ๊ฒฝ์ฐ์ 3๋ฒ๋ง์ ์๋ฅผ ์ ์์ง๋ง 8 // 2 = 4์ ๋๋ค)
4. ๋์งธ, ์๋ฅด๋ ๋น์ฉ์ด ์ด์ต๋ณด๋ค ํฐ ๊ฒฝ์ฐ์๋ ์์ ์ ์๋ฅด๊ณ ๊ฑด๋ ๋ฐ์ด์ผ ๋ฉ๋๋ค.
5. ์ ๋ ๊ฐ์ง๋ง ์ฃผ์ํด์ ํ๋ฉด ๋ฉ๋๋ค.
<์ ๋ต ์ฝ๋>
import sys, os, io, atexit
input = lambda: sys.stdin.readline().rstrip('\r\n')
stdout = io.BytesIO()
sys.stdout.write = lambda s: stdout.write(s.encode("ascii"))
atexit.register(lambda: os.write(1, stdout.getvalue()))
# 230508 1451 ๋๋ฌด๊พผ ์ด๋ค์
# ์ ๋ต์ฝ๋
N, C, W = map(int, input().split())
trees = []
for _ in range(N):
trees.append(int(input()))
max_tree = max(trees)
answer = 0
# 1 ~ ๊ฐ์ฅ ๊ธด ๋๋ฌด์ ๊ธธ์ด๊น์ง ์๋ฅด๊ธฐ
for i in range(1, max_tree + 1):
temp = 0
for tree in trees:
sale = (tree // i) * W * i
# ๋ฑ ๋ง๊ฒ ์๋ฆด ๊ฒฝ์ฐ์๋ 1 ๋นผ๊ธฐ
cost = C * (tree // i if tree % i else tree // i - 1)
profit = sale - cost
# ์ด์ต์ด 0๋ณด๋ค ํด ๊ฒฝ์ฐ์๋ง ๋ํด์ฃผ๊ธฐ
if profit > 0:
temp += profit
answer = max(answer, temp)
print(answer)
'โญ Problem_Solving > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1799 ๋น์ (Python/ํ์ด์ฌ) (1) | 2023.06.05 |
---|---|
[๋ฐฑ์ค] 20165 ์ธ๋ด์ ๋๋ฏธ๋ ธ ์ฅ์ธ ํธ์ (Python/ํ์ด์ฌ) (0) | 2023.05.14 |
[๋ฐฑ์ค] 27942 :danceplant: (Python/ํ์ด์ฌ) (1) | 2023.04.12 |
[๋ฐฑ์ค] 17070 ํ์ดํ ์ฎ๊ธฐ๊ธฐ1 (Python/ํ์ด์ฌ) (0) | 2023.04.04 |
[๋ฐฑ์ค] 2072 ์ค๋ชฉ (Python/ํ์ด์ฌ) (1) | 2022.12.28 |
๋๊ธ