์นดํ
๊ณ ๋ฆฌ ์์
โ [BoJ][Python] 2979 ์ฃผ์ฐจ์ฅ
jihuSunbae
2024. 7. 24. 18:09
๐ซก Overview
3 trial / ์ฒด๊ฐ ๋์ด๋: โ โ โโโ
์์์๊ฐ:
๋ฌธ์ ๋ ๋ฒจ: ๋ธ๋ก ์ฆ2 / ๋ฌธ์ ์ ํ: ๊ตฌํ
ํ์ด ์ํ: ๋ต์์ฐธ๊ณ
์ถํ: ๋ค์ ํ์ด๋ณด๊ธฐ
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/2979
์๊ตฌ์ฌํญ ๋ถ์
๋๋ณด๊ธฐ
์๊ตฌ์ฌํญ ๋ถ์
: 3๋์ ํธ๋ญ์ด ์ฃผ์ฐจ์ฅ์ ๋จธ๋ฌธ ์๊ฐ์ด ์ฃผ์ด์ง ๋, ํธ๋ญ ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ
<์ฃผ์ฐจ ์๊ธ์ ์ฃผ์ฐจ ๋์๊ฐ ๋ง์ ์๋ก ํ ์ธ๋จ>
- 1๋:A์, 2๋: B์, 3๋: C์ (1๋ถ๋น)
- 1<=C<=B<=A<=100
๋์ฐฉ, ์ถ๋ฐ์๊ฐ ์กฐ๊ฑด
- ๋์ฐฉ ์๊ฐ> ์ถ๋ฐ ์๊ฐ
- 1<=๋์ฐฉ, ์ถ๋ฐ์๊ฐ <=100
์ฃ์ง ์ผ์ด์ค:
- ๊ฒน์น๋ ๊ตฌ๊ฐ์ด 2๊ฐ ์ด์์ผ ๋
- ๊ฒน์น๋ ๊ตฌ๊ฐ์ด ์์ ๋
- ๋ชจ๋ ๊ฒน์น ๋
๋์ ์ฝ๋
- ๋์ ์์ด๋์ด
- ๊ฐ ์๊ฐ์ ์ฃผ์ฐจ์ ๊ณ์ฐ (time)
- ์ฃผ์ฐจ์ ๋ณ๋ก ์๊ฐ ๋์ ํฉ ๊ณ์ฐํ ๋ฆฌ์คํธ ์์ฑ(freq)
- ์ต์ข ์ผ๋ก ์๊ธ ๊ณ์ฐ
# ์
๋ ฅ ๋ฐ๊ธฐ
A,B,C = map(int, input().split())
time = [0]*101 # ๊ฐ ์๊ฐ ๋ณ๋ก ์ฃผ์ฐจ์, ์ธ๋ฑ์ค: ๊ตฌ๊ฐ์ ์์ ์๊ฐ์ ์๋ฏธ
for _ in range(3): #์ต๋ O(300)
s, e = map(int, input().split())
for i in range(s,e): # ์ต๋ O(99)
time[i]+=1
# ์ฃผ์ฐจ์ ๋ณ๋ก ์ฃผ์ฐจ ์๊ฐ์ ๊ณ์ฐ
freq = [0]*4 # ์ธ๋ฑ์ค : ์ฃผ์ฐจ์ , ๊ฐ: ์ฃผ์ฐจ๋์ ๋ณ ๋์ ์๊ฐ
for i in range(1,100):
if time[i] > 0:
freq[time[i]] += 1
ans = 0
pays = [0,A,B,C]
for num_car in range(1,4):
f = freq[num_car]
pay_per_h = pays[num_car]
ans += f*num_car*pay_per_h
print(ans)
์ฐธ๊ณ ์ฝ๋
- ๊ทธ๋ฅ time์ ๋๋ฉด์, ๋์ ํฉ์ ๊ณ์ฐํ๋ค.
- ๋ ๊ฐ๋จํ ๊ฑฐ ๊ฐ๋ค.
# ์
๋ ฅ ๋ฐ๊ธฐ
A,B,C = map(int, input().split())
time = [0]*101 # ์ธ๋ฑ์ค: ๊ฐ ์๊ฐ, value : ๊ฐ ์ฃผ์ฐจ์
for _ in range(3): #์ต๋ O(300)
s, e = map(int, input().split())
for i in range(s,e): # ์ต๋ O(99)
time[i]+=1
# time์ ๋๋ฉด์, ์๊ธ์ ๊ณ์ฐ
ans = 0
pays = [0,A,B,C]
for i, num_car in enumerate(time):
ans += num_car*pays[num_car] # ๋์ ํฉ
print(ans)
๋๋ ์
์ฝ๋ ์์ฑํ ๋, ๊ฐ๋จํ๊ฒ ํ ๋ฒ์ ์ํํ ์ ์๋ ์ฝ๋๋ฅผ ์ง์ผ๊ฒ ๋ค.
#๋ฐฑ์ค #์ฝ๋ฉํ ์คํธ #์๊ณ ๋ฆฌ์ฆ #python #ํ์ด์ฌ