구현 - 백준 8958

경운·5일 전
0

코딩테스트

목록 보기
8/13
post-thumbnail

BOJ/백준 - 8958

🐣 백준 - OX퀴즈

1. 문제 분석

문제 이해

  • OOXXOXXOOO 와 같은 OX퀴즈의 결과에서 O의 연속된 개수가 점수
    예를 들면 OOXXOXXOOO의 점수는 1+2+0+0+1+0+0+1+2+3 = 10

입력

  • 첫째 줄에 테스트 케이스의 개수
  • 테스트 케이스는 한 줄로 이루어져 있음
  • 길이는 0보다 크고 80보다 작은 문자열

출력

  • 각 테스트 케이스의 점수 출력

2. 시간 복잡도

  • 테스트 케이스의 개수 N개 만큼 N번 실행
  • 테스트 케이스의 문자열 길이 M만큼 실행

💡 시간 복잡도는 O(N * M)


3. 코드 구현

import java.io.*;

public class No_8958 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	
		int N = Integer.parseInt(br.readLine());
		
		for(int i = 0; i < N; i++) {
			String str = br.readLine();
			int score = 0;  // 'O'이 나올 때마다 1씩 증가
			int sum = 0;    // 테스트 케이스의 총점을 저장
			for(int j = 0; j < str.length(); j++) {
				
				// j번째 문자가 'O' 경우
				if(str.charAt(j) == 'O') {
					score++;
					sum += score;
				}
				
				// j번째 문자가 'X' 인경우
				else {
					score = 0; //연속이 끊겨서 점수 0으로 초기화
				}
			}
			System.out.println(sum);
		}
	}
}

0개의 댓글