본문 바로가기

Python 코딩테스트

구현: 백준 2851 파이썬(Python)

반응형

문제:

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

 

2851번: 슈퍼 마리오

첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다.

www.acmicpc.net

 

풀이:

mush = []

for _ in range(10):
    mush.append(int(input()))

mario, i = 0, 0

while(i < 10):
    prev = mario
    current = mario + mush[i]

    if(current > 100):
        if(abs(100-prev) >= abs(100-current)):
            mario = current
            break
        else:
            mario = prev
            break
    mario += mush[i]
    i += 1

print(mario)

반성:

처음에 while문을 무한반복시켜 런타임에러(IndexError)가 발생했다. 에러가 발생한 이유는 버섯 10개를 다 먹어도 

100을 넘지 못하는 경우를 생각해 주었지 않기 때문이다.

while문이 i가 10보다 작을때 까지 실행되도록 바꾸어주었고, 정답을 맞힐 수 있었다. 

반응형