CodingTest/Baekjoon

[baekjoon] 백준 8958번(파이썬): OX퀴즈

JunJangE 2021. 12. 16. 01:48

문제

 

8958번: OX퀴즈

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

www.acmicpc.net

알고리즘

- 반복문을 통해 테스트 케이스를 실행한다.

- 점수의 변수를 res로 정하고 점수에 더해줄 변수를 cnt로 정한다. 

- 반복문을 통해 문자열을 확인하고 문자가 'O'라면 점수에 cnt를 더해주고 cnt에 +1을 더해준다.

- 문자가 'X'라면 cnt를 1로 초기화해준다. 

코드

import sys


n = int(sys.stdin.readline())

# 반복문을 통해 테스트 케이스를 실행
for _ in range(n):
    m = list(map(str, sys.stdin.readline().strip()))
    res = 0 # 점수
    cnt = 1

    # 반복문을 통해 문자열을 확인
    for i in m:

        # 문자가 'O' 라면 점수에 cnt 를 더하고 cnt 는 +1 해준다.
        if i == "O":
            res += cnt
            cnt += 1

        # 문자가 'X' 라면 점수를 더하지 않고 cnt 를 1로 초기화 해준다.
        else:
            cnt = 1

    print(res) # 점수 출력

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com