본문 바로가기
Problem Solving

[백준] 1267 python 알고리즘

by DuncanKim 2022. 4. 18.
728x90

문제 1267. 핸드폰 요금

 

1. 나의 코드와 발상 과정

n = int(input())
calltime = list(map(int, input().split()))

# 영식 요금제 y
yfee = 0
for i in range(len(calltime)) :
    yfee = yfee + (calltime[i] // 30) * 10
    if (calltime[i] % 30) < 30 :
       yfee += 10
    else :
        yfee += 20 

# 민식 요금제 m 
mfee = 0
for i in range(len(calltime)) :
    mfee = mfee + (calltime[i] // 60) * 15
    if (calltime[i] % 60) < 60 :
       mfee += 15
    else :
        mfee += 30

if yfee < mfee :
    print("Y", yfee)
elif mfee < yfee :
    print("M", mfee)
else :
    print("Y", "M", yfee)

발상은 간단하다. 각 요금제가 월 요금을 계산하는 식을 쓰고, yfee, mfee라는 총합을 받는 변수에 그 결과값을 담아서

마지막 라인에서 yfee가 더 저렴할 때, mfee가 저렴할 때와 그 이외의 결과(값이 같을 때)를 나누어 결과를 출력하도록 한다.

 

2. 아쉬운 점

지금이야 경우의 수가 그렇게 많지 않아 if 돌려막기를 할 수 있겠지만,

며칠만 지나도 for와 if로 돌려막을 수 없을 것이다.

 

물론 쉬운문제는 쉽게 풀어야 하고, 어려운 문제는 어렵게 풀어야 하기에

쉬운 방법도 충분히 연습해두어야 한다. 숙달이 될 수 있도록.

 

아쉬운 점을 정확하게 짚을 수는 없는데,

왠지 아쉽다.

 

728x90

댓글