본문 바로가기
JAVA

[JAVA][백준] 8958_OX퀴즈

by saemsaem 2024. 4. 15.

import java.util.Scanner;

public class OX_8958 {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int sum = 0;
        int[] out = new int[n];

        sc.nextLine();
        for (int j = 0; j < n; j++) {

            String ox = sc.nextLine();
            int cnt = 1;

            for (int i = 0; i < ox.length(); i++) {
                char tmp = ox.charAt(i);

                if (tmp == 'O') {
                    sum += cnt;
                    cnt++;
                } else {
                    cnt = 1;
                }
                out[j] = sum;
            }//for(i)
            sum = 0;
            cnt = 1;
        }//for(j)

        for (int k = 0; k < n; k++) {
            System.out.println(out[k]);
        }
    }
}

먼저 nextLine으로 공백을 받아주고,

테스트개수의 숫자만큼 반복문을 돌며 각 string에 대한 명령어를 실행한다.

퀴즈의 ox string을 받고, cnt는 1로 초기화한다.

반복문을 통해 string의 점수를 계산해준다.

  • o가 반복될 수록 점수가 높아져야 하기 때문에, 현재 알파벳이 o일때 cnt를 1 증가시킨다.
  • x라면 앞에서 쌓였던 반복된 점수가 없어져야 하기 때문에, cnt를 다시 1로 초기화 시킨다.
    • 처음 맞힌 점수가 1이여야 하기 때문에 cnt를 1로 초기화 한다.
  • 하나의 string에 대한 반복문이 끝나면 해당 sum을 배열에 저장한다
    • 모든 테스트 실행이 끝나고 출력하기 위함이다.
  • 하나의 string에 대한 반복문이 끝날때마다 sum과 cnt를 초기화 해준다.

'JAVA' 카테고리의 다른 글

[JAVA][백준] 1978_소수 찾기  (0) 2024.04.15
[JAVA][백준] 10809_알파벳  (0) 2024.04.15
[JAVA][백준] 3052_나머지  (0) 2024.04.15
[JAVA][백준] 1152_단어의 개수  (0) 2024.04.15
[JAVA][백준] 2884_알람시계  (0) 2024.04.15