ezhoon

[인프런] 02_07 점수계산 본문

[Java] 인프런 문제풀이/Array(배열)

[인프런] 02_07 점수계산

ezhoon 2022. 1. 21. 10:55

📖  문제


  1. 첫째 줄에 문제의 개수 N이 주어진다.
  2. 문제가 맞는 경우에는 1점으로 계산하며 연속으로 답이 맞는 경우에는 2점 3점 +1씩 누적된다.
  3. 9개의 OX문제 점수표가 있다고 하면 총점수는 1 + 1 + 2 + 3 + 1 + 2 = 10 점이다.
점수표
채점 1 0 1 1 1 0 0 1 1
점수 1 0 1 2 3 0 0 1 2

출력 예시

⚠️  주의사항


  • 연속으로 맞춘 경우 cnt = cnt + 1
  • 틀린 경우 cnt = 0 

 

✍️  이해


* 1. N 값 입력
* 2. 0과 1로 이루어진 배열 입력
* 3. 배열[i] 에 값이 1이면  cnt ++
* 4. 점수[i] = cnt (연속으로 맞으면 증가)
* 5. 틀린 경우는 점수[i] = 0 cnt -> 0

 

 

✏️  풀이


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Java_02_07 {

    public int solution(int N, int[] temp) {

        int cnt = 0; // 연속으로 답 맞히는 경우 가산점을 위한 변수
        int answer = 0; // 점수 값
        for (int i = 0; i < N; i++) {
            if(temp[i] == 1) cnt++; // 1 즉 정답인 경우 cnt 증가
            else cnt = 0; // 1이 아닌 경우 즉 0 틀린 경우 cnt = 0 초기화

            answer = answer + cnt; // 가산점 누적
        }

        return answer;
    }

    public static void main(String[] args) throws IOException {

        Java_02_07 T = new Java_02_07();

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine(), " "); // 채점 결과 입력

        int[] temp = new int[N];
        for (int i = 0; i < N; i++) {
            temp[i] = Integer.parseInt(st.nextToken()); // 채점 결과 배열에 추가
        }

        System.out.println(T.solution(N, temp));
    }
}

 

Comments