백준 알고리즘 문제 풀이 [Python]

[백준/Python] 8958번 OX퀴즈 (1차원 배열)

wlalsu_u 2023. 2. 22. 22:10

8958번 : OX 퀴즈 문제

 

 

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. 

O는 문제를 맞은 것이고, X는 문제를 틀린 것이다.

문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다.

예를 들어, 10번 문제의 점수는 3이 된다.

 

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

 

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

 

 

 

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

 

8958번: OX퀴즈

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

www.acmicpc.net

 

 


 

풀이 코드

 

n = int(input())

for _ in range(n):
    array = list(input())
    count = 0
    final_sum = 0
    for answer in array:
        if answer == 'O':
            count += 1
            final_sum += count
        else:
            count = 0
    print(final_sum)

 

 

 

n = int(input())

 

 

- 첫째 줄에서 테스트 케이스의 개수 n 을 입력받음

 

- input() 을 통해 한 줄의 문자열을 입력받을 수 있음

 

- 입력받은 문자열을 정수로 처리하기 위해 int() 함수를 사용

 

 

 

for _ in range(n):

 

 

- 입력받은 n 만큼 for 문을 반복

 

- _ (언더바)를 사용하여 반복을 수행하되, 반복을 위한 변수의 값을 무시

 

 

 

array = list(input())

 

 

- input() 으로 입력받은 문자열을 array 리스트에 저장

 

 

 

count = 0

 

 

- count 는 연속으로 맞은 문제의 개수를 세기 위한 변수

 

- 0으로 초기화

 

 

 

final_sum = 0

 

 

- final_sum 은 각 테스트 케이스의 최종 점수를 저장하기 위한 변수

 

- 0으로 초기화

 

 

 

for answer in array:

 

 

- 'for 변수 in 리스트' 형태로, 리스트에 포함되어 있는 원소를 첫 번째 인덱스부터 하나씩 방문

 

- in 뒤에 오는 데이터로는 리스트, 튜플, 문자열 등이 사용 가능 

 

 

 

 

if answer == 'O':

 

 

- array 리스트의 문자가 'O' 인 경우

 

- count 개수를 1개 증가

 

- final_sum 에 count 개수를 더함

 

 

 

 

else

 

 

- array 리스트의 문자가  'X' 인 경우

 

- count 개수를 0으로 초기화

 

 

 

print(final_sum)

 

 

- 최종 점수인 final_sum 을 출력

 

 

 

 

 

 

 

 

나동빈 '이것이 코딩 테스트다 with 파이썬' 책을 참고하여 작성하였습니다.

https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC