[백준] 8958. OX퀴즈

문제

https://www.acmicpc.net/problem/8958

풀이

OX퀴즈의 결과를 입력 받은 후 점수를 구하는 문제이다. 단 연속으로 문제가 맞는 경우는 그 문제까지 맞은 개수가 바로 점수가 된다. 즉 [O O O X] 라면 1+2+3점이 되어 총 6점이 된다.
우선 테스트 케이스를 입력 받고 그 갯수만큼의 크기를 가지는 String 배열을 생성한다.
반복문을 돌려서 StringTokenizer로 O, X를 입력 받아 String 배열에 저장한다.
다시 반복문을 String 배열을 돌린 후 입력 받은 OX 문장을 체크하기 위해 각 항목을 다시 반복문으로 돌린다.
charAt()을 통해 O가 있는지 체크하고 있으면 count++을, 없으면 다시 count를 0으로 저장한다.(연속 되는 O의 개수를 찾는 것이기 때문에)
그리고 합을 구해서 배열의 index별 sum을 출력해준다.

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Q_8958 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int test = Integer.parseInt(br.readLine());
		String[] testArr = new String[test];
		
		for(int i = 0; i < testArr.length; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			testArr[i] = st.nextToken();
		}
		
		for(int i = 0; i < testArr.length; i++) {
			int count = 0;
			int sum = 0;
			for(int j = 0; j < testArr[i].length(); j++) {
				if(testArr[i].charAt(j) == 'O') {
					count++;
				}else {
					count = 0;
				}
				sum += count;
			}
			System.out.println(sum);
		}
	}
}

좋은 웹페이지 즐겨찾기