티스토리 뷰

728x90
반응형

백준 온라인 저지(BOJ) 8958번 OX퀴즈

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

 

8958번: OX퀴즈

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

www.acmicpc.net

* 사용언어 : java, 자바

 

1. 문제

"OOXXOXXOOO" 와 같은 OX 퀴즈 결과가 T개 주어짐

문제를 맞은 경우 그 문제까지 맞은 개수가 그 문제의 점수가 됨

위 예의 경우 1+2+0+0+1+0+0+1+2+3 = 10 이 됨

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

 

2. 풀이

String 배열을 각 케이스를 만들어 문자열로 입력받습니다.

for 문을 사용하여 점수를 구하고 더해주었습니다.

count 의 초기값이 0이고 또 'X' 일 때 0으로 설정하므로,

'O' 가 될 때마다 count를 전위증가(++count) 한 후 total에 더해주었습니다.

 

3. 코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		String[] cases = new String[N];
		for (int i = 0; i < N; i++) cases[i] = sc.next();
		sc.close();

		int count, total;
		for (String OXresult : cases) {
			count = 0;
			total = 0;
			for (int i = 0; i < OXresult.length(); ++i) {
				if (OXresult.charAt(i) == 'O') total += ++count;
				else count = 0;
			}
			System.out.println(total);
		}
	}
}

 

728x90
반응형
댓글