두 수를 입력받고 각각 첫번째 째자리와 세번째 자리를 바꿔준다
그리고 두 수를 비교해서 큰 값을 출력한다
값을 뒤집어 주려면 reverse()를 사용해야하는데
StringBuffer나 StringBuilder를 사용해서 reverse() 메소드를 사용한다
String : 문자열 연산이 적고 멀티쓰레드 환경일 경우
StringBuffer : 문자열 연산이 많고 멀티쓰레드 환경일 경우
StringBuilder : 문자열 연산이 많고 단일쓰레드이거나 동기화를 고려하지 않아도 되는 경우
그래서 Scanner에서는 StringBuffer를 사용하고
BufferedReder에서는 StringBuilder를 사용해보았다.
Scanner을 사용했을때 단순히 reverse만 해주면 값이 뒤집히지 않고 에러가 발생한다.
int reverse = Integer.parseInt(sb.reverse().toString());
공백을 string으로 입력받아서 문제가 발생한다
어떻게 나눌까 고민하다가 append()메소드를 추가해서 입력받은 숫자를 더해주면 된다고해서 문제를 해곃했다.
BufferedReader로 사용했을때 공백을 나눠주는건 StringTokenizer를 사용해서 간단하게 구현했다.
공백이 들어간 문자열을 받을땐 버퍼리더가 좀 더 편리한 것 같다
package 백준;// @ author ninaaano
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class b_2908 {
public static void main(String[] args) throws IOException {
// Scanner sc = new Scanner(System.in);
//
// int a = sc.nextInt();
// int b = sc.nextInt();
// StringBuffer sb = new StringBuffer(a);
// StringBuffer sb2 = new StringBuffer(b);
//
// int reverse = Integer.parseInt(sb.append(a).reverse().toString());
// int reverse2 = Integer.parseInt(sb2.append(b).reverse().toString());
//
// if(reverse > reverse2)
// System.out.println(reverse);
// else
// System.out.println(reverse2);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int a = Integer.parseInt(String.valueOf(new StringBuilder(st.nextToken()).reverse()));
int b = Integer.parseInt(String.valueOf(new StringBuilder(st.nextToken()).reverse()));
if(a>b){
System.out.println(a);
}else
System.out.println(b);
}
}