문제 풀이

[백준] 2908번: 상수 - JAVA (자바)

auyeol 2023. 6. 29. 21:57
728x90

 

문제

 

https://www.acmicpc.net/problem/2908

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

 

입력                                    	출력
734 893						473

입력                                    	출력
221 231						132

 

숫자 2개를 입력받는다. 숫자를 거꾸로 만든 다음, 거꾸로 한 숫자 중 큰 숫자를 출력하는 문제이다.

 

 

------------------------------------------------------------------------------------------------------------------

 

 

풀이

 

Scanner는 노가다로 일일히 직접 바꾸어서 풀었고, BufferedReader는 StringBuilder를 이용해서 풀었다.

 

문자열 관련 문제는 StringBuilder를 이용하면 많이 쉽게 풀리는 것 같다.

 

 

(1) Scanner 사용

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String num1 = sc.next();
		String num2 = sc.next();
		
        sc.close();
        
        char[] re_num1 = new char[3];
		char[] re_num2 = new char[3];
		int n = 0;
		
		for(int i=2;i>=0;i--) {
			re_num1[i] = num1.charAt(n);
			re_num2[i] = num2.charAt(n);
			n++; 
		}
		String str_num1 = new String(re_num1);
		String str_num2 = new String(re_num2);
		int a = Integer.parseInt(str_num1);
		int b = Integer.parseInt(str_num2);
		
		System.out.println(a>b?a:b);
		
		
	}
}

 

 

------------------------------------------------------------------------------------------------------------------

 

 

(2) BufferdReader 사용 

 

String으로 입력을 받은 뒤, split()을 이용하여 숫자들을 문자열로 저장하였다.

 

Integer.parseInt()를 이용하여 int형태로 바꾸어주는 과정에서 StringBuilder를 사용한다.

 

StringBuilder에 append를 하여 숫자를 문자열로 저장한 뒤, reverse()로 숫자를 뒤집어 주었다.

 

parseInt는 String을 Int로 바꾸어주기 때문에 toString을 이용하여 StringBuilder형을 String으로 바꾸어주었다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String[] str = br.readLine().split(" ");
		
		br.close();
		
		int a = Integer.parseInt(new StringBuilder().append(str[0]).reverse().toString());
		int b = Integer.parseInt(new StringBuilder().append(str[1]).reverse().toString());
		
		System.out.println(a>b?a:b);
		
		
	}

}
728x90