ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 백준 8958번 ] OX퀴즈 문제
    코딩 공부/Baekjoon Problem_Set 2021. 7. 9. 19:05

    이번에는 백준 8958번 문제를 풀어보겠습니다. 

     

    <문제>
    "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
    "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
    OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

    <입력>
    첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

    <아이디어>

    테스트 케이스의 개수를 입력받아서 테스트 케이스만큼 반복문을 돌리자.

    각 루프마다 입력 데이터 OX로 이루어진 문자열을 입력받자 

    문자열 데이터를 하나 씩 확인하면서 점수를 더하자.

    연속으로 'O'가 나왔는지 확인하는 방법은? --> O가 나오면 1을 더해주고 X가 나오면 0을 할당하는 변수를 생성하자

    생성한 변수를 최종 점수 변수에 더해주자 

     

    #8958번
    N = int(input())
    for _ in range(N):
        str_arr = input()
        p = 0 #점수
        c = 0 #연속으로 O가 나온 횟수 
        for j in str_arr:
            if(j == 'O'):
                c += 1
            elif(j == 'X'):
                c = 0
            p +=c
        print(p)

     

    더 좋은 방법이 있으면 언제든지 알려주시면 감사하겠습니다. 

Designed by Tistory.