알고리즘 문제 풀기/백준(Baekjoon)

[백준 알고리즘] 8958. OX퀴즈 - 파이썬

hibscus 2021. 2. 10. 00:09

 

 

 

 

T = int(input())
for i in range(1, T+1):
    result = input()
    score = []
    # O인경우 1, X인경우 0으로 리스트 생성
    for i in result:
        if i == 'O':
            score.append(1)
        else:
            score.append(0)
    #누적합 만들기
    for i in range(1, len(score)):
    	# 해당 숫자가 1이고, 이전 숫자도 1인경우 이전 숫자에 +1한 값으로 변경
        if score[i] and score[i-1]:
            score[i] += score[i-1]
    print(sum(score))


    

 

 

🎈 많은 문제들이 리스트를 만들어 단순히 값을 저장하는 것에 넘어, 필요한 정보를 저장해놓고 활용한 경우가 많음!

 

위의 문제에서는 O인 경우 1로 저장해 놓고, X인경우는 0으로 저장해놓은 뒤 활용한 풀이

 

 

 

 

 

 

www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

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

www.acmicpc.net