본문 바로가기
Tests/백준

[백준] 8958번 OX퀴즈 > 파이썬

by 코딩하는 금융인 2021. 7. 18.

백준 파이썬 > 8958번 OX퀴즈

출처 : 백준 8958번 OX퀴즈

 

8958번: OX퀴즈

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

www.acmicpc.net


나의 풀이 in Python3

n = int(input())
for i in range(n):
    ox = input()
    l = list(ox)
    sum = 0
    c =1
    for k in l:
        if k == 'O':
            sum += c
            c +=1
        else:
            c = 1
    print(sum)

OX 테스트 케이스를 리스트화 시키고, 반복문으로 "O"가 나올 때마다 sum 값에 1부터 등차수열로 값을 더해준다.

 

그렇게 어렵지는 않았으나 깔끔하게 풀지 못해 다른 사람의 풀이를 공유해봅니다.

 

다른 사람의 풀이 in Python3

from sys import stdin
for _ in range(int(stdin.readline())):
    print(sum(sum(range(1,len(i)+1)) for i in stdin.readline().strip().split(sep='X')))

 

반응형

댓글