반응형
-해법
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int t = in.nextInt(); // 테스트 케이스 수
int score[] = new int[t]; // 테스트 케이스 수 크기의 점수 배열
String ox; // OX 입력 변수
int temp; // 점수 계산에 사용할 변수
for(int i=0;i<t;i++) { // 테스트 케이스 수 만큼 반복
ox = in.next(); // OX 입력
temp = 0; // OX 입력마다 점수 계산 변수를 초기화
for(int j=0;j<ox.length();j++) { // OX 문자열 탐색 반복문
if(ox.charAt(j) == 'O') { // O인 문자의 경우
temp++; // 점수 +1
}else temp=0; // X인 문자의 경우 점수는 다시 0
score[i]+=temp; // 한 문자마다 점수를 갱신해준다.
}
System.out.println(score[i]); // 점수 출력
}
in.close();
}
}
이 문제의 입력 처리는 대부분 쉽게 해결할 것이라 생각하며, 요점은 O가 연속될 때의 점수 처리라고 생각한다. O를 만날 때마다 1점씩 쌓이는 누적 방식인데, 이는 단순히 위의 풀이처럼 O를 만날 때마다 temp변수를 증가시켜 점수를 누적시키면 된다. 주의할 점은 이렇게 매 번 누적된 점수를 score [] 배열에 계속 갱신시켜주어야 의미가 있다. 또한 X를 만났을 때는 지금까지 누적된 점수를 초기화시켜주어야 한다.
반응형