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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
def sum_count(a): #1부터 a까지의 합을 구하는 함수 세팅
b = 0
for i in range(1, a+1):
b += i
return b
num = int(input()) #몇번 반복할 것인지 입력받기
for i in range(0, num):
answer = str(input())
answer = answer.split("X") #X를 기준으로 입력값을 분해하여 리스트에 추가
temp = []
for i in answer:
temp.append(i.count("O"))
answer = temp
answer = list(map(int, answer)) #O의 개수를 센 list
temp = []
for i in answer:
temp.append(sum_count(i)) #리스트의 값들을 위의 함수를 실행
total = 0
for i in temp:
total += i
print(total)
|
cs |
이 문제가 최근에 한 알고리즘 문제중에 제일 힘들지 않았나 싶다.
python을 아직 잘 알지 못해 def를 이용해 원하는 함수를 먼저 세팅하는걸 생각하지 못했고,그나마 좀 잘한건 X를 기준으로 O들을 나누는 것 정도..? 그래도 풀어서 다행이라고 생각한다.출처 : https://www.acmicpc.net/problem/8958
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수
www.acmicpc.net
'Develop > 백준 (python)' 카테고리의 다른 글
[백준] 10809번: 알파벳 찾기 (python) (0) | 2022.01.09 |
---|---|
[백준] 9498번: 시험성적 (python) (0) | 2022.01.09 |
[백준] 3052번: 나머지 (python) (0) | 2022.01.08 |
[백준] 2920번: 음계 (python) (0) | 2022.01.08 |
[백준] 2908번: 상수 (python) (0) | 2022.01.08 |