문제
꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!
제한사항
첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 10^12)이 공백을 사이에 두고 주어진다.
입출력 예
77 77 7777 | 7931 |
코드
package com.home;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class JUN11382 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
long sum = 0;
for (int i = 0; i < 3; i++) {
sum += Long.parseLong(st.nextToken());
}
System.out.println(sum);
}
}
풀이
이 문제는 단순하다.
3개의 숫자를 한줄로 입력받은 후
다 더해서 출력하면 된다.
이런 문제를 올리는 이유는
이 문제의 제한 사항을 보면
A, B, C (1 ≤ A, B, C ≤ 10^12)
이렇게 되어 있다.
그런데 자바에서 정수형 타입의 데이터 표현 범위를 보면
정수형 타입 | 메모리 크기 | 데이터 표현 범위 |
byte | 1 byte | -128 ~ 127 |
short | 2 byte | -215 ~ (215 - 1) |
-32,768 ~ 32,767 | ||
int | 4 byte | -231 ~ (231 - 1) |
-2,147,483,648 ~ 2,147,483,647 | ||
long | 8byte | -263 ~ (263 - 1) |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
그러면 10의 12승은 몇일까?
바로 1,000,000,000,000 입니다.
int 형의 최대값인 2,147,483,647을
훌쩍 넘는 크기 입니다.
그렇기 때문에 여기서는 int 형이 아닌
long 형을 사용해야 합니다.
String s = "123456789";
long num = Long.parseLong(s);
String, 즉 문자열을 long 형으로
형변환하기 위해서는
위의 코드를 참고 해주시면 됩니다.
감사합니다.
728x90
'백준 > 브론즈' 카테고리의 다른 글
백준 > 11382번 > 꼬마 정민 int, long - JAVA (0) | 2023.09.07 |
---|---|
백준 > 11653번 > 소인수분해 - JAVA (0) | 2022.12.29 |