์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

โ˜… [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 #ํŒŒ์ด์ฌ