본문 바로가기

[백준] 8958번 OX퀴즈 | Java

@공공둘둘2025. 7. 2. 23:25

문제

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

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

 

import java.util.Scanner;

public class OX {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int freq;
		String size;

		freq = sc.nextInt();
		while (freq > 0) {
			int count = 1;
			int temp = 0;
			size = sc.next();
			if (size.length() > 0 && size.length() < 80) {
				char[] arr = size.toCharArray();
				for (int i = 0; i < arr.length; i++) {
					if (arr[i] == 'O') {
						temp += count;
						count++;
					} else {
						count = 1;
					}
				}
				System.out.println(temp);

				freq--;
			}

		}

	}
}

String으로 OX입력값을 받아서 바로 String 배열에 반복문 CharAt()메서드를 통해 문자를 넣으려 했으니까 

String arr[i] = size.charAt(i)

NullO, NullX ..., NullO 처럼 값이 입력됨.

String 배열은 Null값으로 초기화 되기 때문이였다.

 

char 타입 배열에 .toCharArray() 메서드를 통해 문자열 입력값을 문자 하나씩 배열에 넣을 수 있었다.

 

공공둘둘
@공공둘둘 :: 0022

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차