[백준] 10824번 네 수 JAVA (자바) 풀이
문제 10824번
: 네 자연수 A, B, C, D가 주어진다
이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성
(ex) A = 10, B = 20, C = 10, D = 10 일 때
1020 + 1010 = 2030
[입력]
: 첫째 줄에 네 자연수 A, B, C, D 입력
[출력]
: A와 B를 붙인 수와 C와 D를 붙인 수의 합을 출력
[코드]
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));
StringTokenizer st = new StringTokenizer(br.readLine());
long a = Long.valueOf(st.nextToken() + st.nextToken());
long b = Long.valueOf(st.nextToken() + st.nextToken());
System.out.println(a + b);
}
}
[해설]
: StringTokenizer st = new StringTokenizer(br.readLine()); 첫줄의 입력을 공백 단위로 구분
long a = Long.valueOf(st.nextToken() + st.nextToken()); 첫번째, 두번째 입력을 붙여 문자열로 저장
long b = Long.valueOf(st.nextToken() + st.nextToken()); 세번째, 네번째 입력을 붙여 문자열로 저장
: System.out.println(a + b); 합 출력
< 또다른 방법 >
String spt[] = br.readLine().split(" "); 공백으로 구분해 배열 안에 문자 넣기
long a = Long.parseLong(spt[0]+spt[1]);
long b = Long.parseLong(spt[2]+spt[3]);
System.out.println(a + b); 합 출력
[팁]
: AB와 CD는 int 범위를 초과해서 long 을 써야 한다
- 방법 1) Long.parseLong()
문자열을 long 타입으로 변환
- 방법 2) Long.valueOf()
문자열을 long 객체로 반환
: (예외) 해당 문자열이 숫자로 변환할 수 없는 문자열이라면 예외처리 필요
예를 들어 문자열이 ab1123 이라면 NumberFormatException 가 발생하므로
try{ ~ } catch(NumberFormatException e){ ~ } 문을 사용한다
이제 풀어보러 갈께요 :)

https://www.acmicpc.net/problem/10824
10824번: 네 수
첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)
www.acmicpc.net
* 독학으로 익히는 코딩이라 틀린 것이 있을 수 있습니다. 오류가 있다면 댓글을 통해 알려주세요. 감사합니다. *