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