본문 바로가기
Baekjoon/[1] 자료구조

[백준] 10824번 네 수 JAVA (자바) 풀이

by Poorm 푸름 2023. 8. 17.

문제 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

 

 

* 독학으로 익히는 코딩이라 틀린 것이 있을 수 있습니다. 오류가 있다면 댓글을 통해 알려주세요. 감사합니다. *