[★2][백준11382번]꼬마 정민 (JAVA)

Date:     Updated:

카테고리:

태그:

[★2][백준11382번]꼬마 정민 (JAVA)

11382번 문제 ☞ https://www.acmicpc.net/problem/11382

난이도 ☞ [★2]

꼬마 정민

  • 문제
    • 꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!
    • 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다.
    • A+B+C의 값을 출력한다.

      예제입력 예제출력
      77 77 7777 7931

내가 푼 풀이

이번 문제는 주의해야할 점이 있다. 그것은 바로 숫자의 범위인데 1012인데 이 수의 범위는 int형으로 받을 수 없으니, Long형을 선언해서 가져가야합니다. 제가 푼 풀이는 아래와 같습니다.

[ 풀이 1 ]

메모리 : 17732 KB
시간 : 208 ms

Scanner + Arrays.sort()

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        long a = in.nextLong();
        long b = in.nextLong();
        long c = in.nextLong();
        System.out.println(a+b+c);
    }
}

가장 기본적인 Scanner방식을 활용하여 작성해보았습니다. 매우 심플하게 작성할 수 있는 방법입니다. 하지만 성능면에서는 조금 떨어지는 부분이 있습니다. 다음은 BufferedReader방식을 활용하여 작성했습니다.

[ 풀이 2 ]

메모리 : 14220 KB
시간 : 120 ms

Scanner + for

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

public class Main {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		
		Long a = Long.parseLong(st.nextToken());
		Long b = Long.parseLong(st.nextToken());
		Long c = Long.parseLong(st.nextToken());
		
		System.out.println(a+b+c);

	}

}

이번 문제는 최근에 추가된 문제이며, 생각보다 쉽게 풀 수 있었습니다. 수의 범위만 조심한다면 별 문제없이 푸실 수 있을거라고 생각이 듭니다. 그리고 이번 코드에서도 보여지다시피 Scanner보다는 BufferedReader가 좋아보입니다.

BKJN 카테고리 내 다른 글 보러가기

댓글 남기기