백준 2908번  www.acmicpc.net/problem/2908

 

 

 

풀이

 

상수 문제지만 그냥 이름만 상수일 뿐 입력받은 수를 뒤집어서 큰 수가 무엇인지 판단하는 문제이다.

 

두 수를 문자열 형태로 받아왔다. 그 이유는 reverse() 메서드를 사용하기 위해서이다. 문자열을 뒤집는 메서드인데 return 값을 주목할 필요가 있다. 

 

(new StringBuffer(s)).reverse().toString();

여기서 문자열 s 를 StringBuffer 에 넣어 reverse() 메서드를 통해 문자열을 뒤집을 수 있다. 하지만 출력 값이 StringBuffer 타입이므로 변형을 위해 toString(); 으로 타입을 변환해준다. 

 

마지막으로 출력시에는 두 문자열 중 숫자로 바꾸어 큰 수를 출력한다.

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Scanner;
 
public class fianl_2908 {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = String.valueOf(sc.nextInt());
        String b = String.valueOf(sc.nextInt());
        
        if(Integer.parseInt(reverse(a))>Integer.parseInt(reverse(b)))
                System.out.println(reverse(a));
        else System.out.println(reverse(b));
        
        sc.close();
    }
    
     public static String reverse(String s){
         return (new StringBuffer(s)).reverse().toString();
     }
    
}
cs

 

댓글