본문 바로가기

백준

[백준] OX퀴즈 8958번

728x90

코드 힌트

  1. 문제 이해:
    • 이 문제는 주어진 OX 퀴즈에서 연속된 'O'의 점수를 계산하는 것입니다. 'O'가 연속될수록 점수가 높아지며, 'X'를 만나면 점수가 초기화됩니다.
  2. 점수 계산 방법:
    • 각 문자열을 순차적으로 검사하면서 'O'가 나타날 때마다 이전의 점수에 1을 더합니다. 예를 들어, 'OOXOO'라면 첫 번째 'O'는 1점, 두 번째 'O'는 2점, 세 번째 'O'는 1점, 네 번째 'O'는 2점이 됩니다.
  3. 연속된 O 관리:
    • 연속된 'O'의 개수를 변수로 관리합니다. 'O'가 나올 때마다 변수를 증가시키고, 'X'가 나오면 이를 0으로 초기화합니다.
  4. 입출력 처리:
    • BufferedReader와 BufferedWriter를 사용하여 입력과 출력을 처리합니다. 이는 효율적인 입출력을 보장하기 위해 사용됩니다.
  5. 다중 테스트 케이스 처리:
    • 입력된 테스트 케이스 수에 따라 반복문을 통해 각 케이스의 결과를 계산하고 출력합니다.

 


정답은 더코기 클릭

더보기
import java.io.*;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        // 입력을 받기 위한 BufferedReader와 출력하기 위한 BufferedWriter 초기화
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 입력받은 테스트 케이스의 수를 n에 저장
        int n = Integer.parseInt(br.readLine());
        
        // n번의 테스트 케이스를 처리하기 위한 반복문
        for (int i = 0; i < n; i++) {
            // 각 테스트 케이스에 대한 OX 문자열을 입력받음
            String ox = br.readLine();
            
            // 현재 테스트 케이스의 점수를 저장할 변수와 연속된 O의 개수를 기록할 변수 초기화
            int sum = 0;
            int consecutive = 0;
            
            // OX 문자열을 하나씩 순회
            for (char c : ox.toCharArray()) {
                if (c == 'O') {  // 'O'를 만난 경우
                    consecutive++;  // 연속된 O의 개수를 증가
                    sum += consecutive;  // 누적 점수에 연속된 O의 개수를 더함
                } else {  // 'X'를 만난 경우
                    consecutive = 0;  // 연속된 O의 개수를 초기화
                }
            }
            
            // 현재 테스트 케이스의 결과 점수를 출력 버퍼에 기록
            bw.write(sum + "\n");
        }
        
        // 출력 버퍼를 비우고 BufferedWriter를 닫음
        bw.flush();
        bw.close();
    }
}
728x90

'백준' 카테고리의 다른 글

[백준] ACM 호텔 (10250번)  (0) 2024.08.15
[백준] 팩토리얼 10872번  (0) 2024.08.14
[백준] 더하기 사이클 1110번  (0) 2024.08.14
[백준] 괄호 9012번  (0) 2024.08.08
[백준] 제로 10773번  (0) 2024.08.08