[백준Java] 30031번_지폐세기

박주현·2023년 10월 17일
0

Baekjoon

목록 보기
20/24
post-thumbnail

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

1. 문제

대한민국 지폐는 천 원권, 오천 원권, 만 원권, 오만 원권으로 총 네 종류가 있다. 각 지폐의 세로 길이는
68mm68\text{mm}로 모두 같지만, 가로 길이는 모두 다르다. 천 원권의 가로 길이는
136mm136\text{mm}, 오천 원권의 가로 길이는
142mm142\text{mm}, 만 원권의 가로 길이는
148mm148\text{mm}, 오만 원권의 가로 길이는
154mm154\text{mm}이다. 따라서 가로의 길이를 통해서 지폐의 종류를 구분할 수 있다.

수민이는 대한민국 지폐
NN장을 가지고 있다. 수민이는 종이의 크기를 재는 기계를 이용하여 각 지폐의 가로, 세로 길이를 알아냈다. 수민이가 가진 지폐의 총액을 구해보자.

2. 입력

첫째 줄에 정수
N(1N100)N(1\leq N\leq 100)이 주어진다.

둘째 줄부터
NN개의 줄에 각 지폐의 가로, 세로 길이가 공백으로 구분되어
mm\text{mm}단위로 주어진다. 주어지는 지폐의 가로, 세로 길이의 길이는 정수이고 천 원권, 오천 원권, 만 원권, 오만 원권의 가로, 세로 길이 중 하나이다.

3. 출력

수민이가 가진 지폐의 총액을 출력한다.

4. 코드

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

public class Num30031 {

    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StringTokenizer st;
    static StringBuilder sb = new StringBuilder();

    public static void main(String[] args) throws IOException {
        int n = Integer.parseInt(br.readLine());
        int sum = 0;

        while(n--> 0){
            st = new StringTokenizer(br.readLine());
            int w = Integer.parseInt(st.nextToken());

            if(w == 136){
                sum += 1000;
            } else if (w == 142) {
                sum += 5000;
            } else if (w == 148) {
                sum += 10000;
            } else if (w == 154)   {
                sum += 50000;
            }
        }
        System.out.println(sum);

    }
}

5. 학습한 내용

해당 문제에서 BufferedReader , StringTokenizer , StringBuilder 의 사용이유에 대해서 고민해보았다.

  1. BufferedReader
    : 입력을 버퍼링하여 한번의 여러문자를 읽기에 입력과 출력을 향상시킨다는 장점이 있다. 이러한 장점으로 시간을 단축하여 효율적으로 데이터를 처리할 수 있다.

  2. StringTokenizer
    : 문자열을 특정 구문자를 사용하여 구분지어서 토큰화한다.
    토큰화를 통해서 입력 문자열을 구조화하여 데이터를 추출하는데 용이하다.

  3. StringBuilder
    : 문자열 연산을 효율적으로 처리한다.
    문자열을 더하거나 수정할 경우 새로운 문자열을 사용하는것이 아닌 기존의 문자열을 사용함으로 성능이 향상된다.
    이러한 특징에 따라서 반복적인 작업이 많은 경우에 유용하게 사용된다.

profile
빌드업 막 시작하는 개발자

0개의 댓글