📟java/백준

백준 2908 자바

하얀성 2022. 11. 12. 23:40

문제

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.

 


<작성 답안>

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);

int A = s.nextInt();
int B = s.nextInt();
int[] arr1 = new int[3];
int[] arr2 = new int[3];
int a, b;

arr1[0] = A/100;
arr1[1] = (A%100)/10;
arr1[2] = A%10;

a = arr1[0];
arr1[0] = arr1[2];
arr1[2] = a;

A = arr1[0]*100 + arr1[1]*10 + arr1[2];

arr2[0] = B/100;
arr2[1] = (B%100)/10;
arr2[2] = B%10;

b = arr2[0];
arr2[0] = arr2[2];
arr2[2] = b;

B = arr2[0]*100 + arr2[1]*10 + arr2[2];

if(A>B)
System.out.print(A);
else
System.out.print(B);
}
}

 


<정답>

 

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();
        
        in.close();
        
A = Integer.parseInt(new StringBuilder().append(A).reverse().toString());
B = Integer.parseInt(new StringBuilder().append(B).reverse().toString());

 

System.out.print(A > B ? A : B);

 

}
}


<수정 보완>

-> 아예 reverse() 메서드를 써서 단박에 처리해버렸다.

메서드의 힘을 보여준다... 역시 아는 것이 힘이다.

 

-> 간결하게 출력문도 저렇게 3항문으로 간단하게 한문장으로 입력했다면 더 좋았을 것이다.

System.out.print(A > B ? A : B);

 

정답 및 풀이 출처 : https://st-lab.tistory.com/66

'📟java > 백준' 카테고리의 다른 글

백준 1712 자바  (1) 2022.11.13
백준 2941 자바  (0) 2022.11.12
백준 1157 자바  (0) 2022.11.11
백준 10809 자바  (0) 2022.11.10
백준 11654 자바  (0) 2022.11.10