반응형
https://www.acmicpc.net/problem/8958
- 문제
- 문제 풀이
백준 8958번 OX퀴즈는 브론즈 2 난이도의 구현 및 문자열 문제이다. 이 문제에서는 처음에 테스트 케이스의 개수 T가 주어지고 각 테스트 케이스에는 O와 X만으로 이루어진 문자열이 주어진다. O는 맞은 문제를 뜻하고 X는 틀린 문자를 뜻한다. 문제를 맞은 경우에는 그 문제까지 연속되게 맞은 O의 점수가 된다. 이런 식으로 맞은 문제의 점수를 다 더해서 각 테스트 케이스마다 출력하면 되는 문제이다.
이 문제는 간단하게 해결할 수 있다. 우선 점수를 저장하는 int형 변수 score와 더할 점수 add를 선언한다. 그리고 O일 때 먼저 add를 1씩 증가시켜 주고 바로 score에 add를 더해준다. 만약에 X일 경우 add를 0으로 초기화시켜준다. 이런 식으로 모든 테스트 케이스를 접근하면 된다.
자세한 코드는 밑에 있다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine()); //테스트 케이스 개수
StringBuilder sb = new StringBuilder();
for (int i = 0; i < t; i++) {
String s = br.readLine();
int add = 0; //더할 점수
int score = 0; //점수
for (int j = 0; j < s.length(); j++) {
if (s.charAt(j) == 'O') {
add++; //더할 점수 +1
score += add; //총점수에 더함
} else {
add = 0; //X이면 더할 점수 초기화
}
}
sb.append(score + "\n");
}
System.out.print(sb);
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 10809번 : 알파벳 찾기 – JAVA [자바] (0) | 2022.07.07 |
---|---|
[백준] 4344번 : 평균은 넘겠지 – JAVA [자바] (0) | 2022.07.07 |
[백준] 3052번 : 나머지 – JAVA [자바] (0) | 2022.07.07 |
[백준] 1152번 : 단어의 개수 – JAVA [자바] (0) | 2022.07.07 |
[백준] 11654번 : 아스키 코드 – JAVA [자바] (0) | 2022.07.07 |
댓글