Baekjoon

[자바] 백준 - 8958번

yujin0517 2021. 8. 4. 23:46

8958번 - OX퀴즈

 

  1. 입력받을 문자열의 개수를 Scanner로 입력 받고자 배열의 크기 정하기
  2. for문을 이용해 각 인덱스에 문자열 입력받기
  3. if문을 이용해 문자열의 단어를 하나씩 비교
  4. 비교한 문자가 'O'와 동일할 때 count를 1씩 증가하고, 그렇지 않을 때 count를 0으로 초기화
  5. sum에 count에 있는 값을 누적에서 더하기

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String[] arr = new String[sc.nextInt()];

		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.next();
		}

		for (int i = 0; i < arr.length; i++) {
			int count = 0;
			int sum = 0;

			for (int j = 0; j < arr[i].length(); j++) {
				if (arr[i].charAt(j) == 'O') {
					count++;
				} else {
					count = 0;
				}
				sum += count;
			}
			System.out.println(sum);
		}
		sc.close();
	}

}

처음에 이 문제를 풀 때 배열을 char타입으로 선언하여 문자를 하나씩 입력받으려 했습니다.

하지만 사용자가 몇 개의 문자를 입력할지 몰라 다시 코드를 작성하였고, 배열의 타입을 String으로 선언하였습니다.

 

 

감사합니다!

 

2021.08.04