문제 풀기 앞서,
reverse()
은 저장되어 있는 문자열의 순서를 거꾸로 나열하는 메서드이다.
StringBuffer
클래스 또는 StringBuilder
클래스 통해 reverse()
를 사용할 수 있다.
링크: https://www.acmicpc.net/problem/2908
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int num1 = scan.nextInt();
int num2 = scan.nextInt();
num1 = Integer.parseInt(new StringBuilder().append(num1).reverse().toString());
num2 = Integer.parseInt(new StringBuilder().append(num2).reverse().toString());
/*
int num1 = Integer.parseInt(new StringBuilder(scan.next()).reverse().toString());
int num2 = Integer.parseInt(new StringBuilder(scan.next()).reverse().toString());
*/
System.out.print(num1 > num2 ? num1: num2);
}
}
new StringBuilder()
: 문자열을 변경할 수 있도록 제공되는 클래스.append(num)
: num 값을 StringBuilder
에 추가. num이 숫자라면, String.valueOf(num)
이 내부적으로 호출되어 문자열로 변환됨.reverse()
: StringBuilder 내부의 문자열을 뒤집음(반전).toString()
: StringBuilder를 일반 String으로 변환Integer.parseInt(...)
: 문자열을 정수(int)로 변환위의 방법과 다른 점은,
StringTokenizer
를 사용할 수 있음StringBuilder
객체를 생성할 때 append()
를 사용하지 않고 직접 문자열을 넣을 수 있음StringTokenizer
대신 split()
메서드를 활용하여 String
배열로 분리하는 방법도 가능결론은 문자열을 분리하여 두 개의 문자열을 얻는다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
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()," ");
int num1 = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
int num2 = Integer.parseInt(new StringBuilder(st.nextToken()).reverse().toString());
System.out.print(num1 > num2 ? num1: num2);
}
}