-
[백준 / JAVA] 네 수 10824알고리즘/문제풀기 2019. 7. 2. 15:22
문제
네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오.
두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다.
입력
첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)
출력
A와 B를 붙인 수와 C와 D를 붙인 수의 합을 출력한다.
나의 코드
import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String[] token = in.readLine().split(" "); String num1 = token[0]+token[1]; String num2 = token[2]+token[3]; long ans = Long.valueOf(num1) + Long.valueOf(num2); System.out.println(ans); } }
이 문제는 정말 다양하게 풀었다. eclipse에선 잘 돌아갔지만 백준 알고리즘에서는 계속 런타임 에러가 났다.
찾아보니까 int형이 아니고 long형으로 풀어야지 된다고 했다.
이 문제에서는 int 의 표현범위 -2,147,483,648 ~ 2,147,483,647 를 넘어간다.
9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 의 표현범위를 가지는 long long 형으로 변환해주어야 한다.
'알고리즘 > 문제풀기' 카테고리의 다른 글
[백준/파이썬] 좌표 정렬하기 (0) 2019.07.08 [백준/Python3] 카드 구매하기 11052 (0) 2019.07.04 [백준 / JAVA] ROT13 11655 (0) 2019.07.02 [백준 / JAVA] 문자열 분석 10820 (0) 2019.07.01 [백준 / JAVA] 알파벳 찾기 10809 (0) 2019.07.01 댓글