image

Bronze Ⅱ 🔗8958. OX퀴즈

📝문제 요약

문제 설명

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

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

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

입력

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

출력

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


✏️문제 풀이

  • t 는 테스트케이스 갯수
  • score_list에 점수를 저장하여 sum(score_list) 하여 출력하는 형태로 접근하였다.
  • for문을 사용하여 테스트케이스 갯수만큼 반복 for _ in range(t) :
    • 처음에 이 부분을 빼서 에러가 났었는데, score_list를 새로운 테스트 케이스마다 비워줬다.
    • ox는 ox 퀴즈 결과값을 리스트로 받아서 저장한다.
  • for문 안에 ox 의 요소만큼 반복하도록 for문을 만들어주었다.
    • if i == 'O' :
      • 값이 ‘O’ 이면 score을 1씩 더하여 준 후에 score_list에 추가했다.
    • else :
      • 값이 ‘O’가 아니면 score은 0으로 초기화 시켜주었다.
  • sum(score_list) 를 출력하여 전체 점수를 구하였다.


💯제출 코드

t = int(input())
score_list = []

for _ in range(t) :
    score_list.clear()
    ox = list(input())
    score = 0
    for i in ox :
        if i == 'O' :
            score += 1
            score_list.append(score)
        else :
            score = 0
    print(sum(score_list))

댓글남기기