StringBuilder로 문자를 받아 첫번째 자리와 세번째 자리 수를 변환시키는 문제이다.
StringBuilder는 String과 달리, mutable한 함수기 때문에 좀 더 편리하다.
StringBuilder에서의 지정된 값의 수정은 다음과 같이 이루어진다.
StringBuilder.setCharAt([바꿀 자리 수], [바꿀 수]);
해당 메소드를 사용하면 손 쉽게 StringBuilder의 값을 수정할 수 있다.
아래는 위 정보를 토대로 설계한 코드이다.
import java.io.*;
import java.util.*;
class Main{
public static StringBuilder Cal(StringBuilder sb){
char temp = sb.charAt(0);
sb.setCharAt(0, sb.charAt(2));
sb.setCharAt(2, temp);
// 리턴 값 불필요. StringBuilder는 "mutable"
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
st = new StringTokenizer(br.readLine(), " ");
StringBuilder sb1 = new StringBuilder(st.nextToken());
StringBuilder sb2 = new StringBuilder(st.nextToken());
sb1 = Cal(sb1);
sb2 = Cal(sb2);
if(Integer.parseInt(sb1.toString()) >= Integer.parseInt(sb2.toString())){
bw.write(sb1.toString());
}
bw.flush();
br.close();
bw.close();
}
}
StringBuilder에는 reverse() 메소드가 존재한다.
메소드 이름답게, 문자를 뒤집어주는 기능인데,
아래는 이 정보를 바탕으로 설계한 코드이다.
import java.io.*;
import java.util.*;
class Main{
public static String Cal(String s){
return new StringBuilder(s).reverse().toString();
// StringBuilder를 바로 만들어 s를 대입하고 뒤집은 후
// String으로 반환
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
String s1 = Cal(st.nextToken());
String s2 = Cal(st.nextToken());
bw.write(Integer.parseInt(s1) >= Integer.parseInt(s2) ? s1 : s2);
bw.flush();
br.close();
bw.close();
}
}
맞았습니다!!