글이 정상적으로 보이지 않는다면 아래 주소로 접속해 주세요. https://egg-programmer.tistory.com/19
문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
[##_Image|kage@dUliy8/btqzsWdFxau/SHJmI6ytCktC5ce0jDxryK/img.png|alignCenter||_##]
문제 설명
OX퀴즈의 점수를 계산하는 문제.
O가 연속적으로 발생할 수록 점수 배점이 높아진다.
점수 배점을 저장하는 변수를 만들어 O일 때마다 1을 높여주고 X가 나오면 0으로 초기화시키면서 계산하면 된다.
성공 코드
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter((System.out)));
int a = Integer.parseInt(br.readLine());
int sum = 0, temp = 0;
for (int i = 0; i < a; i++) {
String arr[] = br.readLine().split("");
for (String ox : arr){
if (ox.equals("O")) {
temp++;
sum += temp;
}
else temp = 0;
}
bw.write(sum + "\n");
temp = 0;
sum = 0;
}
bw.flush(); bw.close();
}
}
|
cs |
[##_Image|kage@chtKWm/btqzuRhuHMT/EyQLjUKCP04Xvh5fXEJhZk/img.png|alignCenter||_##]