본문 바로가기
백준

[백준] 2506번 : 점수계산 – JAVA [자바]

by Hongwoo 2022. 8. 8.
반응형

https://www.acmicpc.net/problem/2506

 

2506번: 점수계산

OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 2506번 점수계산은 브론즈 3 난이도의 수학 및 구현 문제이다. 이 문제에서는 문제의 개수 N이 주어지고 그다음 줄에는 문제 결과가 N개 주어진다. 처음 맞은 문제는 1점이 주어지고 문제를 연속으로 맞으면 주어지는 점수가 1씩 더 늘어난다. 이때 총 몇 점을 받았는지 출력하면 된다.

 

이 문제는 간단하게 풀 수 있다. 우선 int형 변수 total과 score를 선언해준다. total은 총 점수이고 score는 문제를 맞을 때마다 total에 더할 점수이다. 

 

그리고 for-loop을 돌려 채점 결과를 순회한다. 만약에 1이면 score를 1씩 증가시켜주고 total에 더해준다. 0이면 score를 다시 0으로 초기화해준다. 이렇게 하면 문제를 K개 연속으로 맞으면 total에 K점을 더하게 된다.

 

자세한 코드는 밑에 있다.

 


  • 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int total = 0;  //총 점수
        int score = 0;  //문제 맞을 때 더할 점수
        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) {
            int q = Integer.parseInt(st.nextToken());
            if (q == 1) {
                score++;  //더할 점수를 1씩 증가시켜준다
                total += score;
            } else {
                score = 0;  //문제를 틀리면 score는 리셋
            }
        }
        System.out.print(total);
    }
}

 

 

반응형

댓글