ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [BaekJoon Java] OX퀴즈(8958)
    Coding Test/BaekJoon 2020. 12. 12. 20:39

    www.acmicpc.net/problem/8958

     

    8958번: OX퀴즈

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

    www.acmicpc.net


    • 문제

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

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

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

    • 예제 입출력

    • 풀이
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    package step.array;
     
    import java.util.Scanner;
     
    /**
         "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 
         문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
        "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
        OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
     */
    public class OxQuiz {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            
            int test = 0;
            test = sc.nextInt();
            
            for ( int i=0; i < test; i++ ) {
                String oxStr = "";
                oxStr = sc.next();
                
                int cnt = 0;
                int result = 0;
                
                for ( int j = 0; j < oxStr.length() ; j ++ ) {
                    char o = 'O';
                    char x = 'X';
                    
                    char oneStr = oxStr.charAt(j);
                    
                    if ( o == oneStr ) {
                        cnt ++;
                        result += cnt;
                    }
                    else if ( x == oneStr ) {
                        cnt = 0;
                    }
                }
                System.out.println(result);
            }
        }
    }
     
    cs
    • 결과


    • 추가설명

    Array 단계인데 Array로 안풀었다...

     

    런타임 에러가 계속 나서 문제를 찾아봤더니 Sanner를 2개 쓰는게 문제가 되었다..

    nextInt(), nextLine()를 같이 쓰면 문제 발생

    그래서 Scanner를 새로 생성했더니 런타임 에러..

    nextLine() -> next()로 변경해서 해결했다

     

    'Coding Test > BaekJoon' 카테고리의 다른 글

    [BaekJoon Java] 정수 N개의 합(15596)  (0) 2020.12.13
    [BaekJoon Java] 평균은 넘겠지(4344)  (0) 2020.12.13
    [BaekJoon Java] OX퀴즈(8958)  (0) 2020.05.15
    [BaekJoon Java] 평균(1546)  (0) 2020.05.15
    [BaekJoon Java] 나머지(3052)  (0) 2020.05.15
Designed by Tistory.