[Baekjoon Online Judge] 풀이

[Baekjoon Online Judge] 백준 2506번: 점수 계산 파이썬 풀이 - 알고리즘 코딩 문제 해설 python

codeomni 2023. 2. 16. 15:21
반응형

 

안녕하세요.

이번 포스팅은 백준 온라인 저지의 2506 문제 풀이입니다.

문제 이름은 "점수 계산" 입니다.

 

 

문제


문제 링크는 바로 밑의 링크를 확인해주세요.

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

 

2506번: 점수계산

OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로

www.acmicpc.net

 

 

풀이


1
2
3
4
5
6
7
8
9
10
11
= 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. 총 점수를 출력합니다.