Home [Python] 백준 8958번 : OX퀴즈
Post
Cancel

[Python] 백준 8958번 : OX퀴즈

Problem

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

Solution

처음에 입력받은 값 5는 for문을 반복하는 횟수로 사용했다.

다음으로 입력받은 OX문자열은 X를 기준으로 split해서 리스트로 만들었다. 그렇게 되면 OOXXOXXOOO를 입력하면 리스트 a의 값은 ['OO', '', 'O', '', 'OOO']이 된다. 이때 점수가 산정되는 방식을 살펴보면 OO-> 1+2=3점, O-> 1점, OOO-> 1+2+3=6점으로, O의 개수가 n개라고 할 때 1부터 n까지의 자연수의 합으로 나타난다. 따라서 등차수열의 합 공식을 사용하여 리스트의 각 요소에 해당하는 점수를 n*(n+1)/2로 나타낼 수 있다. 이 값을 더해나가면 해당 입력값에 해당하는 출력값인 점수를 얻을 수 있다.

code

1
2
3
4
5
6
7
8
9
10
itr = int(input())

for _ in range(itr):
    qw = 0
    a = input().split('X')
    for i in a:
        if 'O' in i:
            n = i.count('O')
            qw+=n*(n+1)/2
    print(int(qw))
This post is licensed under CC BY 4.0 by the author.

[Python] 백준 1978번 : 소수찾기

[Python] 백준 1010번 : 다리 놓기