본문 바로가기

[BOJ] - JAVA

[백준] 10824 : 네 수 JAVA 풀이

1. 문자열을 입력 받는다.

2. A와 B를 연결한 값, C와 D를 연결할 값을 저장할 StringBuilder를 생성한다.

2. A B C D는 공백으로 나누어져 입력되므로,

StringTokenizer를 사용해 쪼갠다.

3. StringBuilder.append()를 사용해 A와 B, C와 D를 이어붙인다.

4. 두 StringBuilder에 저장된 값을 Long으로 캐스팅한 후 더하고 출력해준다.

 

아무리 봐도 문제가 없어보이는데 자꾸 NumberFormat 런타임에러가 떠서 당황스러웠다.

다시 문제를 잘 읽어보니 A B C D 각각이 1,000,000까지도 가능하기 때문에

int로는 감당할 수 없는 값이 입력될 수도 있는 거였다.

문제를 꼼꼼히 읽는 게 참 중요한 것 같다.

 

import java.io.*;
import java.util.*;
public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        StringTokenizer st = new StringTokenizer(str," ");
        StringBuilder AB = new StringBuilder();
        StringBuilder CD = new StringBuilder();
        
        AB.append(st.nextToken()).append(st.nextToken());
        CD.append(st.nextToken()).append(st.nextToken());
        
        System.out.println(Long.parseLong(AB.toString())+Long.parseLong(CD.toString()));
    }
}