프로그래밍-학습기록/코딩테스트

백준 온라인 저지 | 8958 | 배열: OX퀴즈

leesche 2020. 7. 29. 21:27

문제

나의 풀이

문자열 배열을 만들고, 그 배열에 테스트케이스를 "X"를 기준으로 분리해서 넣었다. 문자열 배열에는 O와 공백(아무것도 없음)만이 남았고, 그 배열의 요소의 길이를 구한 다음, 연속으로 더해줬다. ( O가 연속 3개 있으면, 6점 ) 그렇게 모든 테스트케이스를 계산하면 끝이다.

나의 방법이 꽤 복잡했지만, 오래 걸리지 않았다. 아직 다른 사람 풀이를 보지 않아, 다른 사람들은 어떻게 풀었을지 기대가 된다.

package baekjunOnlineJudge;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Bj_8958 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
		int quizCount = Integer.parseInt(br.readLine());
        
        String[] oneOXListContainer = new String[quizCount];
        
        for(int i=0; i<quizCount; i++) {
        	int score = 0;
        	oneOXListContainer = br.readLine().split("X");
        	int lengthOfOXContainer = oneOXListContainer.length;
            
        	for(int j=0; j<lengthOfOXContainer; j++) {
        		int continuousOCount = oneOXListContainer[j].length();
        		for(int h=1; h<=continuousOCount; h++) {
        			score+=h;
        		}
        	}
        	bw.write(score+"\n");
        }
        bw.flush();
        bw.close();
	}
}