알고리즘
[백준] 8958번(OX퀴즈) with Java
철갑
2020. 9. 27. 17:48
728x90
문제
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수��
www.acmicpc.net
풀이
O가 나올때마다 count 값을 누적해주고 result 배열에 저장 해준다. O가 안나오면 count를 0으로 초기화 한다.
result 배열 값을 전부 더한 값을 arr에 넣어주고 출력.
좀 더 시간을 단축해볼 것.
답
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
int cnt = 0;
for(int i=0; i<n; i++) {
String[] ox = br.readLine().split("");
int[] result = new int[ox.length];
for(int j=0; j<ox.length;j++) {
if(ox[j].equals("O")) {
cnt++;
result[j]=cnt;
}else {
cnt=0;
result[j]=cnt;
}
}
for(int h=0; h<result.length; h++) {
arr[i] += result[h];
}
cnt=0;
}
for(int k=0; k<arr.length; k++) {
System.out.println(arr[k]);
}
}
}
728x90