Baekjoon 문제 풀기 (5543번 : 상근날드)Python

5543번 : 상근날드

1. 문제읽기


min을 사용하려고 했으나..

처음에 min을 사용하려고 했으나 input()을 변수에 담아야 된다는 생각을 못하고
변수에 담지 않고 계속 input()을 사용했더니, 5번 입력을 받는 것이 아니라 7번 8번씩 입력을 더 받는 것이다.
input()의 문제라고 생각하지 않고, 이런 식으로 하면 안되는구나(…) 라고 생각해서 다 지우고 새로 코드를 짰다.

그래서 생각한 것이 burger와 drink 값에 가장 큰 값을 입력시켜 그 값보다 작은 값이 입력이 들어오면 변수의 값을 바꿔주었다.
사실 메커니즘은 똑같은데 min을 안쓰고 그냥 풀어쓴거다..

2. 제출 코드


burger = 2001
drink = 2001

for i in range(5):
    price = int(input())
    if i <= 2 and price < burger:
        burger = price
    else:
        if price < drink:
            drink = price

print(burger+drink-50)

3. 공부할 것


input()을 중복해서 쓰면 입력받은 당시의 값을 변수처럼 쓰는 줄 알았는데, 무조건 변수에 입력시켜놓지 않으면 그 다음 입력값을 받아와버리기 때문에 주의해야 한다.

기존 쓰고싶었던 min함수를 써서 코드를 조금 간단하게 정리해보았다.
이 외에도 리스트에 값을 추가하여 리스트 자체의 최솟값을 구하는 방법도 있었다.

burger = 2001
drink = 2001

for i in range(3):
    a = int(input())
    burger = min(burger, a)

for i in range(2):
    b = int(input())
    drink = min(drink, b)

print(burger+drink-50)

댓글남기기