티스토리 뷰

서론
문제를 고민고민하다가 시간이 없어서 다른 분의 풀이를 블로그에서 참고했다.
| 출처 | 성장하는 코더의 스토리
문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
시행착오(Trial&Error)

풀이(Solution)
기본 점수와 더해줄 점수를 변수로 선언하고, 연속 정답일 때의 점수를 어떻게 분기하여 반영해줄 지 고민하고 작성해야 한다.문자열로 입력받은 OX값에 대해 하나 하나 따져봐야 하기 때문에 문자열.charAt(idx);를 사용해야 한다.
코드
import java.io.*;
class Main {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
String[] arr = new String[n];
for(int i = 0; i < n; i++) {
arr[i] = br.readLine();
int score = 0; // 0점으로 초기화
int add = 0; // 정답일 경우 반영될 점수
for(int j = 0; j < arr[i].length(); j++) {
if(arr[i].charAt(j)=='O') {
add++;
score += add;
} else {
add = 0;
}
}
bw.write(score + "\n");
}
br.close();
bw.close();
} catch(IOException e) {}
}
}'알고리즘 > 문제풀이 - 백준' 카테고리의 다른 글
| [백준 4673번] 셀프 넘버(JAVA) (0) | 2022.11.07 |
|---|---|
| [백준 4344번] 평균은 넘겠지(JAVA) (2) | 2022.11.05 |
| [백준 1546번] 평균(JAVA) (0) | 2022.11.03 |
| [백준 1110번] 더하기 사이클(JAVA) (0) | 2022.11.02 |
| [백준 10951번] A + B - 4(JAVA) (0) | 2022.11.01 |
댓글
공지사항
