본문 바로가기
백준/브론즈

백준 > 11382번 > 꼬마 정민 - JAVA > String을 long형으로 형변환하기

by 아찌방 2023. 3. 22.

문제

꼬마 정민이는 이제 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