관리 메뉴

Just Do it

[백준/자바] 8958번: OX퀴즈 본문

신입 개발자가 되기 위해 공부했던 독학 자료들/Java 연습문제 (백준)

[백준/자바] 8958번: OX퀴즈

Seojoo21 2022. 1. 29. 20:07

1. 문제

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

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

2. 내 코드

실패

 

3. 다시 체크하고 넘어갈 부분 

1. 이 문제의 알고리즘 이해하기 

출처: https://st-lab.tistory.com/50

1.1 이중 반복문 익히기

1.2 이차원 배열이 아니더라도 일차원 배열에서도 인덱스를 참조변수로 쓸 수 있다는 점 기억하기

 

import java.io.*;
import java.util.Arrays;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		int C = Integer.parseInt(br.readLine());
	
		String[] arr = new String[C];
		
		for(int i=0; i<arr.length; i++) {
			arr[i] = br.readLine();
		}
		
		// System.out.println(Arrays.toString(arr)); // 1. 입력값들을 하나의 배열에 넣기
		
		for(int i=0; i<arr.length; i++) {
			int count = 0;
			int sum = 0;
			
			for (int j=0; j<arr[i].length();j++) { // 2. 배열 내 모든 요소를 대상으로 하나씩 실행한다. 
				if(arr[i].charAt(j) == 'O') {
					count++;
				}
				else {
					count = 0;
				}
				sum += count;
			}
			sb.append(sum).append('\n'); // 3.2번에서 나온 sum 값을 sb에 차곡차곡 넣어둔다.
		}
		System.out.print(sb);
	}

}