본문 바로가기
알고리즘/백준

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

by 그릿er 2020. 5. 3.

 

<문제>

 

"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
import java.util.*;
 
 
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]);    
        sc.close();
        }
    }
    
        
    
 
 
 
 

 

 

 

 


 

  nextLine(); (12번째 줄)

    nextInt()는 \n이 입력되기 전, 즉 엔터키를 치기 전까지의 숫자를 입력받기 때문에 nextInt()뒤에 nextLine()을 연속적      으로 써버리면 \n을 읽어버려서 결과값이 다르게 나온다. 

    개행 문자인 \n을 제거하는 역할을 한다.

    위의 문제를 예로 들면 nextLine()을 넣지 않았을 때 처음 입력 값 n을 5로 입력을 하더라도 4개의 입력만 받고 결과      값에는 처음에 0이 출력된다.

 

char charAt(int index) (19번째 줄)

    함수는 입력받은 인자값(index) 의 위치에 있는 문자를 뽑아내는 함수