풀이1
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[] arr = new String[sc.nextInt()];
for(int i=0; i< arr.length; i++) {
arr[i]= sc.next();
}
sc.close();
for(int i=0; i< arr.length; i++) {
int cnt=0;
int sum=0;
for(int j=0; j<arr[i].length(); j++) {
if(arr[i].charAt(j)=='O') {
cnt++;
}else {
cnt=0;
}
sum=sum+cnt;
}
System.out.println(sum);
}
}
}
Scanner배열로 값을 받아 데이터를 하나씩 비교해서 O가 나오면 cnt+1을 X가 나오면 cnt값을 0으로 초기화 해주었다.
풀이2
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] arr = new String[Integer.parseInt(br.readLine())];
//StringBuilder sb = new StringBuilder();
for(int i=0; i<arr.length; i++) {
arr[i] = br.readLine();
}
for(int i=0; i<arr.length; i++) {
int cnt=0;
int sum=0;
for(int j=0; j<arr[i].length(); j++) {
if(arr[i].charAt(j) =='O') {
cnt++;
}else {
cnt=0;
}
sum+=cnt;
}
//sb.append(sum).append('\n');
System.out.println(sum);
}
}
}
Scanner보다 좀 더 효율성이 좋은 BufferedReader를 사용한 예제이다.
https://www.acmicpc.net/problem/8958
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수
www.acmicpc.net
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 알고리즘 2562 최댓값 (0) | 2021.04.16 |
---|