문제: 1459 걷기

Sungmin·2023년 3월 20일
0

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


Solution

x, y, w, s = map(int, input().split())

#평행으로만
result1 = (x+y) * w
#대각선으로만
if (x+y)%2 == 0:
    result2 = max(x, y) * s
#대각선 + 평행1
else:
    result2 = (max(x, y)-1) * s + w
#평행 + 대각선
result3 = min(x, y) * s + abs(x-y) * w

print(min(result1, result2, result3))

배운점

처음엔 세 가지 방식을 if문 여러개를 묶어 풀어보려 했는데 코드가 너무 지저분해 진다는것을 느끼고 세 가지 방식을 각각 result1, 2, 3 에 넣은뒤 min함수를 활용해 최소시간을 구했다.
세 가지 방식을 빠르게 떠올리는게 이 문제의 핵심이라고 느껴졌다.

profile
Let's Coding

0개의 댓글