[★2][백준11382번]꼬마 정민 (JAVA)
카테고리: BKJN
태그: Algorithm Java Coding Test
[★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
가 좋아보입니다.
댓글 남기기