[java] 백준 2506번 점수계산알고리즘/백준2021. 8. 12. 23:54
Table of Contents
문제 요약
답을 틀리다가 답이 맞으면 처음 문제는 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);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[python] 백준 2566번 최댓값 (0) | 2021.08.13 |
---|---|
[java] 백준 1964번 오각형, 오각형, 오각형… (2) | 2021.08.13 |
[java] 백준 2501번 약수 구하기 (4) | 2021.08.11 |
[java] 백준 1568번 새 (13) | 2021.08.10 |
[java] 백준 2765번 자전거와 속도 (0) | 2021.08.10 |
@펄찌 :: Pearl's Story
펄의 일상이 궁금한 사람 요기~
즐거운 하루 되셨으면 좋겠습니다😊