Algorithm

백준 8958번 JAVA (OX퀴즈)

Geon_Ho 2023. 2. 20. 21:39

문제해설

해당 문제는 처음에 입력한 숫자만큼 O와 X의 배열이 한줄씩 주어지고 해당하는 점수를 산출하여 각각 출력하는 문제이다.

반복문을 이중으로 사용했다. 첫 반복문은 처음에 입력한 숫자만큼 반복하여 모든 배열을 받을 수 있도록 설정하고, 두번째 반복문은 각 배열마다 O와 X의 점수를 산정하여 차근차근 점수를 매길 수 있도록 설정하였다.

여기에서 O일 경우 eachScore를 1씩 증가시켜 totalScore에 더하게 하고 X일 경우 eachScore를 초기화 시켰다.

결과코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int tNum = Integer.parseInt(br.readLine());
        int eachScore;
        int totalScore;

        for (int i = 0; i < tNum; i++){
            totalScore = 0;
            eachScore = 0;
            String result = br.readLine();
            
            for (int j = 0; j < result.length(); j++){
                if (result.charAt(j) == 'O') {
                    eachScore++;
                    totalScore += eachScore;
                } else {
                    eachScore = 0;
                }
            }
            System.out.println(totalScore);
        }
    }
}

배운점

if (result.charAt(j) == 'O') 해당 문장에서

  • string문장.charAt()에 대한 메소드를 처음 사용해보았다. 해당 메소드를 통해 나온 리턴값은 char형이다.
  • 'O'는 char형, "O"는 string형 이다.

 

»  제가 작성한 글의 내용중 잘못된 부분 및 수정해야 할 사항이 있으면 댓글로 말씀부탁드립니다.

확인 후 다시 공부하여 수정하도록 하겠습니다. 끝까지 읽어주셔서 감사합니다 !! 😀