개발자의 자기계발 블로그( ੭ ・ᴗ・ )੭
[코딩테스트] 백준 2908번: 상수 reverse() (JAVA) 본문
자바에는 편리한 메소드들이 참 많구나....... ㅠㅠㅠ
난 왤케 모르는게 많지 .. ㄱㅊ아 알아가면 됨.....

두 수를 입력 받고 거꾸로 된 두 수의 크기를 비교하여 더 큰 수를 출력하는 문제이다.
난 reverse() 메서드의 존재를 몰랐고...
그래서 어케 풀었냐면
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int newA = reverse(a);
int newB = reverse(b);
if(newA > newB){
System.out.println(newA);
}else{
System.out.println(newB);
}
}
public static int reverse(int num){
int rev = num / 100 + ((num % 100) / 10) * 10 + (num % 10) * 100;
return rev;
}
}
이렇게함...ㅋㅋㅋ StringBuilder의 reverse() 메소드를 알고있다면 쉽게 풀 수 있는 문제,,ㅠㅠ
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int newA = Integer.parseInt(new StringBuilder().append(a).reverse().toString());
int newB = Integer.parseInt(new StringBuilder().append(b).reverse().toString());
// StringBuilder은 String을 입력받아서 StringBuilder(a)와 같이 바로 숫자를 넣을 수 없음
// a와 b를 Integer.toString()을 이용하여 문자열로 바꿔주는 방법도 있지만
// append() 메서드를 사용하여 넣어줬음
// sb에 입력된 값을 reverse() 메소드를 이용하여 역순으로 바꿔주고
// 역순으로 바뀐 값의 타입이 StringBuilder이기 때문에 (reverse() 메서드의 반환값은 StringBuilder)
// toString()을 이용하여 다시 String타입으로 변경해줘야함
// String 타입이 된 친구를 다시 int형으로 바꾼다음 newA,B에 저장
System.out.println(newA > newB ? newA : newB);
}
}
StringBuilder와 reverse, append 메서드를 이용하여 다시 푼 모습이다 ~!!
처음 짠 코드대로 해도 당연히 정답이지만,,
더 짧고 간편하게 할 수록 좋은 코드라는 점 !
java에서 제공하는 메소드를 적극 활용할 수 있는 개발자가 되기를,,,
'코딩테스트' 카테고리의 다른 글
| [코딩 테스트] 백준 2609번 : 최대공약수와 최소공배수 (JAVA) (0) | 2024.04.23 |
|---|---|
| [코딩 테스트] 백준 1181번 : 단어 정렬 (JAVA) (0) | 2024.04.23 |
| [코딩테스트] 백준 2231번 : 분해합 (JAVA) (0) | 2024.04.22 |
| [코딩테스트] 백준 1920번: 수 찾기 ( 이진 탐색 ) (JAVA) (0) | 2024.04.09 |
| [코딩테스트] 백준 11720번 charAt() (JAVA) (0) | 2024.04.02 |