https://www.acmicpc.net/problem/8958
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수
www.acmicpc.net
문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.
출력
각 테스트 케이스마다 점수를 출력한다.
핵심
1. scanner를 통해 테스트케이스 개수를 입력받는다.
2. 점수의 총합을 담기 위한 변수 score와 O의 개수에 따른 점수를 담을 변수 idx를 담는다.
3. scanner를 통해 O와X로 이루어진 문자열을 입력받고 charAt을 이용하여 한글자씩 검사를 진행한다.
O가 나오면 ++idx를 해준다음 score에 누적해서 더해주고, X가 나오면 idx를 0으로 세팅해준다.
4. score를 출력하고 다음 테스트를 위해 score와 idx를 0으로 세팅한다.
5. t번 반복한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int t = scanner.nextInt();
int score = 0;
int idx = 0;
for (int i = 0; i < t; i++) {
String ox = scanner.next();
for (int j = 0; j < ox.length(); j++) {
if(ox.charAt(j)=='X'){
idx = 0;
}else{
++idx;
score += idx;
}
}
System.out.println(score);
score = 0;
idx = 0;
}
}
}
'Algorithm' 카테고리의 다른 글
| [백준 알고리즘 JAVA] 1259번 팰린드롬수 (0) | 2024.04.12 |
|---|---|
| [백준 알고리즘 JAVA] 10250번 ACM 호텔 (2) | 2024.04.12 |
| [백준 알고리즘 JAVA] 11005번 진법 변환 2 (0) | 2024.04.12 |
| [백준 알고리즘 JAVA] 2745번 진법 변환 (0) | 2024.04.12 |
| [백준 알고리즘 JAVA] 2920번 음계 (0) | 2024.04.11 |