[BOJ/백준-Python]8958번 - OX퀴즈

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만으로 이루어져 있다.

출력

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

예제 입력 1

5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX

예제 출력 1

10
9
7
55
30

해결할 방법을 생각해보자.💡

첫째 줄에서 테스트 케이스를 input 받는다.

num = int(input())

만약 예제처럼 테스트 케이스가 5로 다섯 개라면, 테스트가 다섯 개 줄에 걸쳐서 이루어지므로 for를 이용한 반복문을 만들어 준다.

for i in range(num):

그리고 각 테스트에서 OX로 이루어진 문자열을 받아준다.

	# a가 한 테스트에서 받는 문자열
    a = input()

그리고 O가 연속으로 나오면 추가되는 값이 1씩 커진다. 추가되는 값을 count로, 각 테스트에서 계속 합해지는 값을 sum으로 잡아준 후 0을 대입시켜준다.

	count= 0
    sum = 0

그리고 이제 하나의 테스트 안에서 하나의 글자가 O 혹은 X인지를 판단하는 반복문을 설정해줘야 한다. 그 반복 횟수는 문자열의 길이만큼이므로 정수형으로 반환시켜준다.

	for j in range(len(a)):

여기서만약 O라면, 계속 더해지는 숫자를 1씩 늘려줘야하므로 count에 1씩 더해준다. 또한 그 더해진 count를 전체 합인 sum에다가 더해준다.

		if a[j] == 'O':
        	count += 1
            sum += count

만약에 그게 아니라면? sum에도 더해지면 안되고 연속적인 O가 끝나기 때문에 count를 초기화시켜줘야한다.(0으로)

		else:
        	count = 0

그리고 한 테스트의 마지막에서 print문으로 sum을 출력시켜주는 것으로 문제를 해결할 수 있다.

	print(sum)

코드💻

import sys
input = sys.stdin.readline
num = int(input())

for i in range(num):
    a = input()
    count = 0
    sum = 0
    for j in range(len(a)):
        if a[j] == 'O':
            count += 1
            sum += count
        else:
            count = 0
    print(sum)
        

해결 로그

문제 푼 날짜 체크
2022-05-16
   
   
   
   

2022

[web]jQuery 복습 3

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 2

13 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 1

14 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리4

5 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리3

10 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리2

7 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리1

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]CSS 기초 정리

11 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]HTML 기초 정리

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[Pandas]pandas 연습

3 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑

2021

[Python기초]module

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑