STUDY/Algorithm

[백준] 8958 OX 퀴즈

sinawi95 2021. 1. 30. 20:18
728x90

www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

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

www.acmicpc.net


T = int(input())

for tc in range(T):
    tmp_list = input().split('X')
    result = 0
    for tmp in tmp_list:
        if tmp != '':
            result += sum(range(len(tmp)+1))
    print(result)

결과에서 O가 연속되면 점수가 누적되는 시스템이다. 

결과에 X를 기준으로 split하면 각 원소가 O또는 공백이 된다.   ex)"OOXXOXXOOO" -> ['OO','','O','','OOO']

이를 사용하면 O가 연속적으로 나온 길이를 구할수 있다.    ex) 2번 연속 정답, 1번 정답, 3번 연속 정답

이 길이를 통해서 점수를 구하면 된다. 이 코드는 range와 sum을 사용하여 점수를 구하였다. ex) (1+2)+(1)+(1+2+3) = 10

 

'STUDY > Algorithm' 카테고리의 다른 글

[백준] 10809 알파벳 찾기  (0) 2021.02.01
[백준] 1157 단어 공부  (0) 2021.02.01
[백준] 1475 방 번호  (0) 2021.01.30
[백준] 1075 나누기  (0) 2021.01.30
[백준] 2798 블랙잭  (0) 2021.01.30