๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver2] 2477๋ฒˆ_์ฐธ์™ธ๋ฐญ

Dbswnstjd 2023. 6. 16. 17:02

๋ฌธ์ œ

https://www.acmicpc.net/problem/2477

 

2477๋ฒˆ: ์ฐธ์™ธ๋ฐญ

์ฒซ ๋ฒˆ์งธ ์ค„์— 1m2์˜ ๋„“์ด์— ์ž๋ผ๋Š” ์ฐธ์™ธ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์–‘์˜ ์ •์ˆ˜ K (1 ≤ K ≤ 20)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฐธ์™ธ๋ฐญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์œก๊ฐํ˜•์˜ ์ž„์˜์˜ ํ•œ ๊ผญ์ง“์ ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋‘˜๋ ˆ๋ฅผ ๋Œ๋ฉด์„œ ์ง€

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 2477๋ฒˆ ๋ฌธ์ œ - ์ฐธ์™ธ๋ฐญ
melon = int(input()) # ์ฐธ์™ธ ๊ฐœ์ˆ˜ K
values = [input().split() for _ in range(6)] # ๋‚˜๋จธ์ง€ 2~7 line์˜ 6 ์ค„์„ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค.
directions = [int(v[0]) for v in values] # ๋ฐฉํ–ฅ์„ ๋ฝ‘์•„๋‚ด์„œ ์ €์žฅํ•œ๋‹ค.
lengths = [int(v[1]) for v in values] # ๊ธธ์ด๋ฅผ ๋ฝ‘์•„๋‚ด์„œ ์ €์žฅํ•œ๋‹ค.
max_lengths, box_lengths = [], [] # ํฐ ๋ฐ•์Šค์˜ ๊ธธ์ด, ์ž‘์€ ๋ฐ•์Šค์˜ ๊ธธ์ด๋ฅผ ๋‹ด์„ ๋ฐฐ์—ด

for i in range(1, 5):
    if directions.count(i) == 1: # direction์ด ํ•œ๋ฒˆ๋งŒ ์กด์žฌํ•œ๋‹ค == ํฐ ๋ฐ•์Šค์˜ ๋ณ€
        max_lengths.append(lengths[directions.index(i)]) # ํฐ๋ฐ•์Šค์˜ ๋ณ€ ๊ธธ์ด ์ €์žฅ
        temp = directions.index(i) + 3 # ํฐ ๋ฐ•์Šค + 3 == ์ž‘์€ ๋ฐ•์Šค์˜ ๋ณ€
        if temp >= 6:
            temp -= 6 # cycle์„ ์œ„ํ•ด 6 ์ด์ƒ์ผ ๊ฒฝ์šฐ -6
        box_lengths.append(lengths[temp]) 

area = max_lengths[0] * max_lengths[1] - box_lengths[0] * box_lengths[1]
print(melon * area)