[백준][Python] 8958. OX퀴즈
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))
댓글남기기