반응형
안녕하세요.
이번 포스팅은 백준 온라인 저지의 2506번 문제 풀이입니다.
문제 이름은 "점수 계산" 입니다.
문제
문제 링크는 바로 밑의 링크를 확인해주세요.
https://www.acmicpc.net/problem/2506
풀이
1
2
3
4
5
6
7
8
9
10
11
|
N = int(input())
score = list(map(int, input().split()))
result = 0
buf = 0
for i in score:
if i == 1:
buf += 1
result += buf
else:
buf = 0
print(result)
|
cs |
핵심. 순차적으로 탐색해서 해당 부분의 가산값만 총 점수에 더해주고, 0일 경우 가산값을 초기화합니다.
1. 문제의 수 N을 입력 받습니다.
2. 채점 결과를 리스트로 선언하여 입력 받습니다.
3~4. 총 점수를 저장할 변수와 앞의 문제를 맞췄을 때 가산되는 값을 저장할 변수를 선언합니다.
5. 채점 결과를 for문을 통해서 처음부터 끝까지 순차적으로 탐색합니다.
9~10. 해당 문제는 채점 결과가 0이 되면 가산 점수가 초기화 됩니다.
먼저, 0일 경우 점수도 0이지만 가산 점수도 초기화 되기 때문에 else 문으로 가산 점수 부분을 초기화합니다.
6~8. 점수가 1일 경우 가산 점수에 1을 더하고, 해당 부분의 최종 계산 값은 결과값에 저장합니다.
즉, 해당 부분의 맞은 점수인 1을 더해주는 것이 아니라 가산된 최종값만 저장합니다.
11. 총 점수를 출력합니다.
댓글