망나니 AWOS의 일상
article thumbnail

 

문제 요약

답을 틀리다가 답이 맞으면 처음 문제는 1점으로 계산

연속으로 문제를 맞히게 되면 두 번째 문제는 2점, 세 번째 문제는 3점으로 계산

 

예제 입력이 아래와 같이 들어왔을 때

10                  
1 1 1 1 1 1 1 1 1 1

첫번째 문제부터 마지막 문제(10번)까지 다 맞았기 때문에 점수는 아래와 같이 된다.

1 2 3 4 5 6 7 8 9 10

맞은 문제를 누적시켜서 더하게 되면 총점은 55점이 되는 것이다.

 

이해가 안 된다면 추가적으로 예제를 더 보여주겠다.

10                  
1 0 0 0 1 1 1 1 0 0
1 0 0 0 1 2 3 4 0 0

총점 = (1+1+2+3+4) = 11 이 출력으로 나오게 된다.

 

이제 감이 잡혔으면 코드를 보자.

 

문제의 개수 N을 입력받고 

N개의 문제의 채점 결과를 나타내는 0, 1을 입력받아 correctProblem 배열에 넣어준다.

 

ex) correctProblem에 값이 [1, 0, 1, 1, 1, 0, 0, 1, 1, 0] 이 들어왔다고 생각했을 때

 

for each문을 사용해 correctProblem배열의 원소 값이 1인지 아닌지만 판단해주면 된다.

원소 값이 1이면 count를 증가시켜 tot변수에 누적을 해주면 된다.

만약 다음 원소값이 0이라면 count=0이 되어버리고 1이라면 count=2, 3, 이런 식으로 증가해서 tot변수에 누적을 시켜줄 것이다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] correctProblem = new int[N];

        for(int i=0; i<N; i++){
            correctProblem[i] = sc.nextInt();
        }
        int tot=0, count=0;
        for(int i: correctProblem){
            if(i == 1) {
                count++;
                tot+= count;

            }else
                count=0;

        }
        System.out.println(tot);
    }
}

 

profile

망나니 AWOS의 일상

@AWOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!