[백준/파이썬] 2851번 슈퍼 마리오 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 2851번 슈퍼 마리오
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
버섯 점수를 순서대로 더할 때 합이 100에 가장 가까운 값을 구하는 문제입니다.
코드
mushrooms = [int(input()) for _ in range(10)]
s = [-100]
for i in range(1, 11):
s.append(sum(mushrooms[0:i]))
for i in range(1, 11):
if s[i] >= 100 or i == 10:
print(s[i] if (s[i]-100)**2 <= (s[i-1]-100)**2 else s[i-1])
break
설명
누적합 배열을 만들고 100 이상이 되는 첫 지점에서 이전 값과 현재 값을 비교해 더 가까운 값을 선택합니다.
댓글남기기