728x90
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수
www.acmicpc.net
📌 풀이
첫째 줄에 테스트 케이스 수를 받는다.
그 수 만큼 반복하면서 문자열을 받을 수 있는 변수(ox_list)를 선언한다. (리스트여도, 문자열이어도 상관 없음)
이 문제의 어려운 점은 OXOX 이런 식으로 나오면 2점이지만 OOX 이렇게 나오면 3점으로 계산이 되는,
즉 O가 나오면 점수가 누적되어야 하는 기능이 필요하다는 거였다.
OOX를 예로 문제를 풀어보자면, 입력값에서 O가 있으면 score 1점을 추가하고, sum에서 총합을 계산한다.
OO라면 score 1점 / sum 1점 ---> score 2점 / sum 3점 이렇게 계산이 된다.
만약 OXO라면 score 1점 / sum 1점 ---> score 0점 -----> score 1점 / sum 2점 으로 계산이 되는 구조다.
즉 X가 나오면 score는 리셋이 되기 때문에 카운트 되지 않고, sum만 최종적으로 알 수 있게 된다.
이런 유형의 문제가 많은데도 매번 볼 때마다 패닉이 된다... ^_ㅠ
✅ 코드
test_case = int(input())
for i in range(test_case) :
ox_list = list(input())
score = sum = 0
for i in ox_list :
if i == 'O' :
score += 1
sum += score
elif i == 'X' :
score = 0
print(sum)
728x90
'🥧 Python > ⚙️ 코딩테스트' 카테고리의 다른 글
[백준-Python] 10103번: 주사위 게임 (0) | 2023.03.01 |
---|---|
[백준-Python] 10162번: 전자레인지 (0) | 2023.03.01 |
[백준-Python] 9610번: 사분면 (0) | 2023.02.24 |
[백준-Python] 5717번: 상근이의 친구들 (0) | 2023.02.24 |
[백준-Python] 5086번: 배수와 약수 (0) | 2023.02.24 |