온풀투데이

[백준] 8959번 : OX 퀴즈 본문

TIL

[백준] 8959번 : OX 퀴즈

온풀 2022. 4. 5. 23:12

8959번 : OX 퀴즈

package com.test;

import java.util.Scanner;

public class Main 
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);

        int num = sc.nextInt();

        // 케이스 문자열 담을 배열 선언
        String[] arr = new String[num];

        // 각 케이스 문자열을 각각의 배열방에 담기
        for (int i = 0; i < arr.length; i++)
        {
            arr[i] = sc.next();
        }

        // 각 케이스 문자열을 하나씩 쪼개서 담을 배열 선언
        String[] arr2;

        // 각 케이스 문자열 길이만큼 배열 크기 선언 후 값 담기
        for (int i = 0; i < arr.length; i++)
        {
            //System.out.println(arr[i].length());

            arr2 = new String[arr[i].length()];

            int sum = 0;
            int point = 1;

            for (int j = 0; j < arr2.length; j++)
            {
                arr2[j] = arr[i].substring(j, j+1);

                //System.out.println("arr2[j] = " + arr2[j]);

                // O면 sum에 포인트가 누적된다. (연속되어 합해진다.)
                // x면 point를 1로 초기화한다.
                if (arr2[j].equals("o") || arr2[j].equals("O"))
                {
                    sum += point;
                    point++;
                }
                else
                    point = 1;
            }    


            // 테스트
            /*
            System.out.println("arr2.length = " + arr2.length);

            for (int k = 0; k < arr2.length; k++)
            {
                System.out.print(arr2[k] + " ");
            }
            System.out.println();
            */

            System.out.println(sum);
        }
    }
}

아직은 문제 푸는 데 시간이 꽤 많이 소요되지만 문제를 풀면 풀수록 반복문과 조건문 사용이 익숙해지는 것을 느끼고 있다. O가 연속될 때 점수도 누적되는 것, 다시 X가 나왔을 때 값을 초기화하는 것. 초기화를 어디서 해야 할지 감을 못 잡아서 시간을 많이 뺏겼다. 백준 풀 때 주석도 그대로 제출 가능했으면 좋겠다. 주석 필수야...