<문제>
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
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
33
34
35
36
37
|
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] result = new int[n];
sc.nextLine(); //개행문자(\n)제거
for(int i=0; i<n; i++) {
String src=sc.nextLine();
int plus = 0;
for(int j=0; j<src.length(); j++) {
if(src.charAt(j)=='O') { //n번째의 문자를 읽어내는 메소드
plus++;
result[i]+=plus;
}else {
plus = 0;
}
}
}
for(int i=0; i<n; i++)
System.out.println(result[i]);
}
}
|
※ nextLine(); (12번째 줄)
nextInt()는 \n이 입력되기 전, 즉 엔터키를 치기 전까지의 숫자를 입력받기 때문에 nextInt()뒤에 nextLine()을 연속적 으로 써버리면 \n을 읽어버려서 결과값이 다르게 나온다.
개행 문자인 \n을 제거하는 역할을 한다.
위의 문제를 예로 들면 nextLine()을 넣지 않았을 때 처음 입력 값 n을 5로 입력을 하더라도 4개의 입력만 받고 결과 값에는 처음에 0이 출력된다.
※ char charAt(int index) (19번째 줄)
함수는 입력받은 인자값(index) 의 위치에 있는 문자를 뽑아내는 함수
'알고리즘 > 백준' 카테고리의 다른 글
[백준 15596번 ː 자바(JAVA)] 정수 N개의 합 (0) | 2020.05.04 |
---|---|
[백준 4344번 ː 자바(JAVA)] 평균은 넘겠지 (0) | 2020.05.04 |
[백준 10996번 ː 자바(JAVA)] 별 찍기 - 21 (0) | 2020.05.01 |
[백준 1546번 ː 자바(JAVA)] 평균 (0) | 2020.04.27 |
[백준 3052번 ː 자바(JAVA)] 나머지 (0) | 2020.04.27 |