반응형
문자열을 뒤집고 두 수의 크기 비교하는 문제이다.
접근 방법)
우선 문자열을 뒤집기 위해서 몇 가지 방법이 존재한다. for문을 이용하여 문자를 하나씩 위치를 거꾸로 배치하는 방법과 StringBuilder 클래스를 이용하는 방법이다.for문을 이용하여 문자열을 뒤집는 방법도 괜찮지만 StringBuilder 클래스의 주요 메소드를 이용하면 문제를 굉장히 쉽게 풀어낼 수 있다. 그렇기 때문에 StringBuilder 클래스와 주요 메소드를 알지 못했다면 이번 기회에 알아놓자.
▷ StringBuilder 클래스와 주요 메소드를 이용한 문자열 뒤집기
StringBuilder는 문자열에서 문자를 삽입, 붙이기, 제거, 뒤집기등 여러 가지 기능을 할 수 있는 클래스이다.
우리가 사용할 메소드는 reverse()와 toString()이다.
StringBuilder sb = new StringBuilder("문자열");
sb.reverse(); // 열자문
sb.toString(); // sb는 StringBuilder형이기 때문에 String으로 형 변환이 필요
이 메소드를 활용해 입력받은 문자열을 뒤집고 다시 String형으로 형 변환을 한 후, Integer.parseInt()를 이용하여 int형으로 형 변환을 하여 두 수의 크기 비교를 하면 된다.
StringBuilder의 다른 주요 메소드는 아래 페이지를 통해 알아보자.
정답 코드 1)
import java.util.*;
import java.lang.*;
import java.io.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
StringBuilder sb1 = new StringBuilder(a);
StringBuilder sb2 = new StringBuilder(b);
int a1 = Integer.parseInt((sb1.reverse()).toString()); // 문자열 뒤집고 형 변환
int a2 = Integer.parseInt((sb2.reverse()).toString()); // 문자열 뒤집고 형 변환
if(a1>a2){
System.out.println(a1);
}else{
System.out.println(a2);
}
}
}
정답 코드 2)
import java.util.*;
import java.io.*;
class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
String x = new StringBuilder(st.nextToken()).reverse().toString(); // 문자열 뒤집고 형 변환
String y = new StringBuilder(st.nextToken()).reverse().toString(); // 문자열 뒤집고 형 변환
int a = Integer.parseInt(x);
int b = Integer.parseInt(y);
System.out.print(a > b ? a : b);
}
}
정답 코드 3)
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
String as = Integer.toString(a);
String bs = Integer.toString(b);
char[] arra = as.toCharArray();
char[] arra2 = as.toCharArray();
char[] arrb = bs.toCharArray();
char[] arrb2 = bs.toCharArray();
for(int i = 0; i < as.length(); i++){ // for문을 이용한 문자열 뒤집기
arra2[i] = arra[as.length()-i-1];
}
int aa = (arra2[2]-'0')+((arra2[1]-'0')*10)+((arra2[0]-'0')*100);
for(int i = 0; i < bs.length(); i++){ // for문을 이용한 문자열 뒤집기
arrb2[i] = arrb[bs.length()-i-1];
}
int bb = (arrb2[2]-'0')+((arrb2[1]-'0')*10)+((arrb2[0]-'0')*100);
if(aa > bb){
System.out.print(aa);
}else{
System.out.print(bb);
}
}
}
반응형
'Baekjoon 자바 코드 > 문자열' 카테고리의 다른 글
[백준] 11718번 그대로 출력하기 코드 (Java 자바) (0) | 2024.09.30 |
---|---|
[백준] 5622번 다이얼 풀이 코드 (Java 자바) (1) | 2024.09.25 |
[백준] 1152번 단어의 개수 풀이 코드 (Java 자바) (0) | 2024.09.04 |
[백준] 2675번 문자열 반복 풀이 코드 (Java 자바) (1) | 2024.09.03 |
[백준] 10809번 알파벳 찾기 풀이 코드 (Java 자바) (0) | 2024.09.02 |