똥그래미 코딩공장
백준 2851번(슈퍼 마리오) 파이썬 본문
https://www.acmicpc.net/problem/2851
2851번: 슈퍼 마리오
첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다.
www.acmicpc.net
10개의 수를 입력받아 순서대로 더하는중 100을 넘거나 100이되면 더하는 과정을 멈추고 100에 가장 가까운 합을 출력하라는 문제이다. 문제 자체는 그 어렵지 않아 쉽게 접근 할 수 있었다. 그러나 코딩하는중 10개의 수의 합이 100을 넘지 않는 경우를 생각하지 못해 시간이 조금 걸리게 되었다. 그래도 결국 풀어냈다.
arr = []
for i in range(10):
arr.append(int(input("")))
sum = 0
list =[]
for i in range (10):
sum += arr[i]
list.append(sum)
if sum>=100:
x =abs(100-list[i])
y =abs(100-list[i-1])
if x<=y:
print(list[i])
break
else:
print(list[i-1])
break
if sum<100:
print(sum)
10개의 수를 입력받고 차례대로 더해가면서 그 더한값을 새로운 list에 저장해 준다. 그리고 합이 100을 넘거나 같은 순간이 오면 현재 더한값과 그 전의 더한값의 수를 비교하여 그 차이가 더 적은 수를 출력한다. 그러면 두 수중 100에 더 가까운 수가 출력되기 때문이다. 그리고 마지막에는 모든 수의 합이 100이 안될 경우를 대비해 새로운 if문을 넣어줬다.
'Algorithm' 카테고리의 다른 글
| 백준 11866번(요세푸스 문제0) 파이썬 (0) | 2022.02.16 |
|---|---|
| 백준 2164번(카드2) 파이썬 (0) | 2022.02.15 |
| 백준 11399번(ATM) 파이썬 (0) | 2022.02.13 |
| 백준 2941번(크로아티아 알파벳) 파이썬 (0) | 2022.02.13 |
| 백준 2751번(수 정렬하기) 파이썬 (0) | 2022.02.13 |