개발 공부/알고리즘 문제풀이

[백준] 8958. OX퀴즈

5묘 2022. 7. 17. 00:18
 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net


# 8958 OX 퀴즈
# O가 연속된 수가 많을수록 점수가 높아져 더해진다.
# O를 카운트하는 수를 만들어 점수로 더해주고, X를 만나면 0으로 초기화 시키자!

import sys
T = int(input())

for tc in range(1, T+1):
    cnt = score = 0
    arr = sys.stdin.readline().rstrip()
    for ch in arr:
        if ch == 'O':
            cnt += 1
            score += cnt
        else:
            cnt = 0
    print(score)

들어오는 문자열을 받아서, O일 때마다 cnt에 1이 증가하고, 해당 cnt를 score에 더해주는 식으로 풀었다.
X를 만나면 cnt는 초기화된다. 그래서 cnt에는 O가 연속된 숫자가 저장되는 것이다. 

'개발 공부 > 알고리즘 문제풀이' 카테고리의 다른 글

[백준] 15596. 정수 n개의 합  (0) 2022.07.18
[백준] 4344. 평균은 넘겠지  (0) 2022.07.18
[백준] 1546. 평균  (0) 2022.07.17
[백준] 3052. 나머지  (0) 2022.07.17
[백준] 2577. 숫자의 개수  (0) 2022.07.17