8958 문제풀이

chp9419·2021년 4월 15일
0
post-thumbnail

문제

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

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

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

입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

출력
각 테스트 케이스마다 점수를 출력한다.

예제 입력 1 
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
예제 출력 1 
10
9
7
55
30

접근방법

입력 5을 받은뒤 어떻게 문자열을 입력받게 할것인가?
입력 받은 문자열을 어떻게 점수화 시킬것인가?

풀이

N = int(input())

for i in range(5):
    a = list(input())
    plus = 0
    number_plus = 0

    for x in a:   
        if x== "X":
            plus  = 0

        else: # "O" 값이 일경우
            plus +=1
            number_plus += plus # 총합계를 만들기 위한 점수

    print(number_plus)
    
  1. OX퀴즈 문제는 문자열을 어떻게 숫자로 표현해서
    값을 출력할것인가 핵심이다.

  2. 이중 반복문 사용으로 사용하여 조건문걸고 x="X" 라고 할때 plus 값을 0으로 만들주고 나머지는 1로 해주는 else문을 만들어 주면 된다.

    나는 plus = 0, plus +=1, number_plus +=plus 코드를 생각하는데 많은시간이 좀 걸렸다!

이문제는 개인적으로 많은걸 알수 있었다.

profile
주어진 문제는 해결하고 공부하고 성장한다.

0개의 댓글