Python/알고리즘 - 백준

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

Jong_seoung 2022. 10. 11. 20:48
반응형

문제 링크 : https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

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

www.acmicpc.net

 


 


문제  요약

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

TRY CODE

a = int(input())
score=0

for i in range(a):
    b = str(input().split("X"))
    score += b.count("O")
    print(score)
    score = 0

문제점

  1.  score의 점수는 더해지는데 연속해서 맞출 경우 추가 점수가 들어가지 않는다.

해결법

  • score 외의 sum_score라는 변수를 하나 더 추가하여 추가 점수를 주었다.

CODE

a = int(input())

for i in range(a):
    b = str(input().split("X"))
    score = 0
    sum_score = 0
    for j in b:
        if j == "O":
            score += 1
            sum_score += score
        else:
            score = 0
    print(sum_score)

 

 

풀이

1. a에 int형으로 입력을 받는다

a = int(input())

2. 퀴즈의 답 목록을 str형으로 받아준다

    score = 0 , sum_score = 0으로 변수를 할당하여준다

for i in range(a):
    b = str(input().split())
    score = 0
    sum_score = 0

3. b의 값을 j에 넣어주는 for문

   만약 j의 값이 O와 같으면 score에 1점을 더해주고

   sum_score에 score를 더해준다.

   그렇지 않으면

   점수는 0점으로 만든다.

   sum_score를 출력하여준다.

    for j in b:
       		if j == "O":
            	score += 1
            	sum_score += score
        	else:
            	score = 0
    	print(sum_score)

 

반응형