hye-log

[백준]8958번 OX퀴즈(JAVA) 본문

CodingTest/Baekjoon

[백준]8958번 OX퀴즈(JAVA)

iihye_ 2023. 8. 13. 03:22

0. 문제 링크

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

 

8958번: OX퀴즈

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

www.acmicpc.net

 

1. 문제 설명

1) 연속된 O의 개수만큼 점수를 얻었을 때 점수 구하기

 

2. 입출력

// input
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX

// output
10
9
7
55
30

 

3. 코드

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

public class b8958 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine()); // 테스트 케이스의 개수
		for (int i = 0; i < T; i++) {
			String result = br.readLine(); // OX퀴즈 결과
			int score = 0; // OX퀴즈 점수
			int bonus = 1; // 연속된 개수
			
			for (int j = 0; j < result.length(); j++) {
				switch(result.charAt(j)) {
					case 'O':
						score += bonus; // 연속된 점수
						bonus += 1; // 1점 추가
						break;
					case 'X':
						bonus = 1; // 연속 점수 초기화
						break;
					default:
						break;
				}
			}
			
			System.out.println(score);
		}

	}

}

 

실행 결과

 

4. 회고

1) O이면 보너스 점수를 추가하고, X이면 보너스 점수를 초기화 하는 방식으로 연속된 O의 점수를 구함

 

5. Github

https://github.com/iihye/Algorithm/blob/main/Baekjoon/b8958.java

 

 

728x90

'CodingTest > Baekjoon' 카테고리의 다른 글

[백준]10809번 알파벳 찾기(JAVA)  (0) 2023.08.13
[백준]10250번 ACM 호텔(JAVA)  (0) 2023.08.13
[백준]3052번 나머지(JAVA)  (0) 2023.08.13
[백준]2920번 음계(JAVA)  (0) 2023.08.13
[백준]11720번 숫자의 합(JAVA)  (0) 2023.08.13
Comments