본문 바로가기
백준알고리즘/1차원 배열

(Python/🥉2)백준 알고리즘 8958번: OX퀴즈

by windy7271 2022. 5. 11.
728x90
반응형

문제 출처:https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

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

www.acmicpc.net

풀이:

n = int(input())            # 테스트케이스 입력받음
for i in range(n):          
    a = input()             #한줄 받아옴
    sum = 0                 #합 0 으로 선언
    sumpoint = 0            #연속된 합 0 으로 선언
    for j in a:
        if j == 'O':        # o 가 연속되면 1씩 더해줌
            sumpoint += 1
        else:               # x 가 나오면 0 으로 만듦
            sumpoint = 0
        sum += sumpoint    
    print(sum)

 

다른 분 풀이:

import sys

n = int(input())
for i in range(n):
    ans = sys.stdin.readline().rstrip()
    res = 0
    for j in ans.split('X'):
        k = j.count('O')
        res += k*(k+1)/2

    print(int(res))

 

#print(ans.split('X'))  #출력하면>> ['OO', '', 'O', '', 'OOO']

for j in ans.split('X'):  #['OO', '', 'O', '', 'OOO']
    k = j.count('O')      # 2,0,1,0,3
    res += k*(k+1)/2	  # res = 3 + 0 + 1 + 0 + 3 = 10 출력

대단한거같다,,

 

출처:백준알고리즘 nozomu2002 님 소스

 

반응형

댓글