7. 점수계산
시험문제의 채점 결과가 주어졌을 때, 총 점수를 계산하는 프로그램
1. 1번 문제가 맞는 경우에는 1점으로 계산한다.
2. 앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산한다.
3. 또한, 연속으로 문제의 답이 맞는 경우에서 두 번째 문제는 2점, 세 번째 문제는 3점, ..., K번째 문제는 K점으로 계산한다.
4. 틀린 문제는 0점으로 계산한다.
입력) 첫째 줄에 문제의 개수 N (1 ≤ N ≤ 100)이 주어집니다.
둘째 줄에는 N개 문제의 채점 결과를 나타내는 0 혹은 1이 빈 칸을 사이에 두고 주어집니다.
출력) 첫째 줄에 입력에서 주어진 채점 결과에 대하여 가산점을 고려한 총 점수를 출력합니다.
import java.util.Scanner;
public class Main {
public static int solution(int n, int[] arr) {
int answer = 0, cnt = 0;
for (int i=0; i<n; i++) {
if (arr[i]==1) {
cnt++;
answer += cnt; // 점수 누적
}
else cnt = 0; // 0으로 초기화
}
return answer;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] arr = new int[n];
for (int i=0; i<n; i++) {
arr[i] = scanner.nextInt();
}
System.out.println(solution(n, arr));
}
}
결과
'알고리즘(Java) > Array' 카테고리의 다른 글
[알고리즘]Array(배열) 9. 격자판 최대합 - N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가장 큰 합 구하기 (0) | 2021.07.24 |
---|---|
[알고리즘]Array(배열) 8. 등수 구하기 - N명의 학생의 등수를 순서대로 출력하기 (0) | 2021.07.24 |
[알고리즘]Array(배열) 6. 뒤집은 소수 - N개의 자연수가 입력되면 각 자연수를 뒤집은 후, 그 뒤집은 수가 소수이면 그 소수를 출력하기 (0) | 2021.07.24 |
[알고리즘]Array(배열) 5. 소수(에라토스테네스의 체) - 자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력하기 (0) | 2021.07.24 |
[알고리즘]Array(배열) 4. 피보나치(Fibonacci) 수열 (0) | 2021.07.23 |
댓글