μ½”λ”©ν…ŒμŠ€νŠΈ

[λ°°μ—΄] 7. 점수 계산

μ‹œνλ¦¬ν‹°μ§€ν˜Έ 2023. 12. 17. 16:15
7. μ μˆ˜κ³„μ‚°
 

μ„€λͺ…

OX λ¬Έμ œλŠ” λ§žκ±°λ‚˜ ν‹€λ¦° 두 경우의 닡을 κ°€μ§€λŠ” 문제λ₯Ό λ§ν•œλ‹€.

μ—¬λŸ¬ 개의 OX 문제둜 λ§Œλ“€μ–΄μ§„ μ‹œν—˜μ—μ„œ μ—°μ†μ μœΌλ‘œ 닡을 λ§žνžˆλŠ” κ²½μš°μ—λŠ” 가산점을 μ£ΌκΈ° μœ„ν•΄μ„œ λ‹€μŒκ³Ό 같이 점수 계산을 ν•˜κΈ°λ‘œ ν•˜μ˜€λ‹€.

1번 λ¬Έμ œκ°€ λ§žλŠ” κ²½μš°μ—λŠ” 1점으둜 κ³„μ‚°ν•œλ‹€. μ•žμ˜ λ¬Έμ œμ— λŒ€ν•΄μ„œλŠ” 닡을 틀리닀가 닡이 λ§žλŠ” 처음 λ¬Έμ œλŠ” 1점으둜 κ³„μ‚°ν•œλ‹€.

λ˜ν•œ, μ—°μ†μœΌλ‘œ 문제의 닡이 λ§žλŠ” κ²½μš°μ—μ„œ 두 번째 λ¬Έμ œλŠ” 2점, μ„Έ 번째 λ¬Έμ œλŠ” 3점, ..., K번째 λ¬Έμ œλŠ” K점으둜 κ³„μ‚°ν•œλ‹€. ν‹€λ¦° λ¬Έμ œλŠ” 0점으둜 κ³„μ‚°ν•œλ‹€.

예λ₯Ό λ“€μ–΄, μ•„λž˜μ™€ 같이 10 개의 OX λ¬Έμ œμ—μ„œ 닡이 λ§žμ€ 문제의 κ²½μš°μ—λŠ” 1둜 ν‘œμ‹œν•˜κ³ , ν‹€λ¦° κ²½μš°μ—λŠ” 0으둜 ν‘œμ‹œν•˜μ˜€μ„ λ•Œ,

점수 계산은 μ•„λž˜ ν‘œμ™€ 같이 κ³„μ‚°λ˜μ–΄, 총 μ μˆ˜λŠ” 1+1+2+3+1+2=10 점이닀.

μ‹œν—˜λ¬Έμ œμ˜ 채점 κ²°κ³Όκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 총 점수λ₯Ό κ³„μ‚°ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 문제의 개수 N (1 ≤ N ≤ 100)이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” N개 문제의 채점 κ²°κ³Όλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 0 ν˜Ήμ€ 1이 빈 칸을 사이에 두고 μ£Όμ–΄μ§„λ‹€.

0은 문제의 닡이 ν‹€λ¦° 경우이고, 1은 문제의 닡이 λ§žλŠ” κ²½μš°μ΄λ‹€.

좜λ ₯

첫째 쀄에 μž…λ ₯μ—μ„œ μ£Όμ–΄μ§„ 채점 결과에 λŒ€ν•˜μ—¬ 가산점을 κ³ λ €ν•œ 총 점수λ₯Ό 좜λ ₯ν•œλ‹€.

μ˜ˆμ‹œ μž…λ ₯ 1 

10
1 0 1 1 1 0 0 1 1 0

μ˜ˆμ‹œ 좜λ ₯ 1

10

힌트

 
 
<<풀이>>
 
-λ‚˜μ˜ 풀이-
 
일단 이 λ¬Έμ œλŠ” 문제 λ‚΄μš©μ΄ κΈΈμ§€ 문제 μžμ²΄λŠ” μ–΄λ ΅μ§€κ°€ μ•Šλ‹€. κ°•μ‚¬λ‹˜μ˜ 풀이도 λ‚˜μ™€ κ°™μ•„μ„œ κ°•μ‚¬λ‹˜ ν’€μ΄λŠ” μƒλž΅ν•œλ‹€.
 
import java.util.Scanner;

class Main {

    public int solution(int n, int[] arr) {
        int answer = 0;
        int constant = 0;
        for (int i = 0; i < n; i++) {
            if (arr[i] == 1) {
                constant++;
                answer += constant;
            }
            if (arr[i] == 0) constant = 0;

        }

        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = in.nextInt();
        }

        System.out.println(T.solution(n, arr));
    }
}