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

소스 코드
n=int(input())
test_case=[]
num=0
score=0
for i in range(0, n):
a=input()
test_case.append(a)
for i in test_case:
for j in i:
if(j=='O'):
num+=1
elif(j=='X'):
num=0
score+=num
print(score)
score, num=0,0
정리
'OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다' 라는 예제를 보면 문제를 이해할 수 있다.
각 O는 1점이고 X는 0점이며 연속으로 답을 맞췄을 경우 그 연속된 문제까지의 점수를 더해주면된다.
test_case 리스트를 만들어 append() 함수를 사용해 각 테스트 케이스를 한줄 한줄 저장해준다.
이후, 이중for문을 사용하여 test_case의 각 줄의 케이스에 대해 연속된 문제를 고려해 점수를 출력하는 코드를 작성한다.
출력 뒤에는 score와 num을 다시 0으로 초기화하여 그 다음 test_case의 케이스에 대해 점수를 출력해주는 것을 반복하면 된다.
'Python > Baekjoon' 카테고리의 다른 글
| [백준] 11654번 : 아스키 코드 (Python) (1) | 2024.11.25 |
|---|---|
| [백준] 4344번 : 평균은 넘겠지 (Python) (1) | 2024.11.25 |
| [백준] 10871번 : X보다 작은 수 (Python) (0) | 2024.11.24 |
| [백준] 2753번 : 윤년 (Python) (1) | 2024.11.24 |