import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
int reversed_A = reverseNumber(A);
int reversed_B = reverseNumber(B);
int max = (reversed_A > reversed_B) ? reversed_A : reversed_B;
System.out.println(max);
scanner.close();
}
public static int reverseNumber(int n) {
int reversed = 0;
while (n > 0) {
int digit = n % 10;
reversed = reversed * 10 + digit;
n /= 10;
}
return reversed;
}
}
✔️reverseNumber 메서드
public static int reverseNumber(int n) {
// 세 자리 수를 거꾸로 뒤집어 반환
int reversed = 0;
while (n > 0) {
int digit = n % 10; // 일의 자리 숫자 구하기
reversed = reversed * 10 + digit; // 기존 결과를 10 곱한 후 일의 자리 숫자 더하기
n /= 10; // 다음 자릿수로 이동
}
return reversed;
}
1. int digit = n % 10;
-> n을 10으로 나눈 나머지를 계산하여 digit 변수에 저장한다.
digit 변수에는 n의 일의 자리 숫자가 저장된다.
2. reversed = reversed * 10 + digit;
-> 뒤집힌 결과 reversed에 10을 곱한 후 digit 값을 더하여 숫자를 뒤집는다.
이 연산은 일의 자리 숫자를 더하고, 십의 자리 숫자가 되도록 뒤집는 작업을 한다.
예를 들어, reversed가 0이고 digit이 3일 때, reversed = 0 * 10 + 3 이므로 reversed는 3이 된다.
이후 digit 이 7일때, reversed = 3 * 10 + 7 이므로 reversed는 37이 된다.
3. n /= 10;
n을 10으로 나누어 다음 자릿수로 이동한다. (n = n / 10;)
이를 통해 다음 반복에서 일의 자리 숫자를 다시 구할 수 있다.
예를 들어, n이 378이라면 n /= 10을 수행하면 n은 37이 된다.
4. 반복이 끝나고 n이 0보다 작아지면(일의 자리 숫자가 없어지면) 반복문이 종료된다.
예를 들어, 378을 거꾸로 뒤집는 과정이다.
1) 초기상태: n = 378, reversed = 0
2) 8을 얻고 뒤집은 결과에 추가
• digit = n % 10 (일의 자리 숫자인 8을 얻음)
• reversed = reversed * 10 + digit (기존 결과인 0이 8을 더해줌)
• 결과: reversed = 0 * 10 + 8 = 8, n = n / 10 (다음 자릿수로 이동) -> n = 37
3) 7을 얻고 뒤집은 결과에 추가
• digit = n % 10 (일의 자리 숫자인 7을 얻음)
• reversed = reversed * 10 + digit (기존 결과인 8이 7을 더해줌)
• 결과: reversed = 8 * 10 + 7 = 87, n = n / 10 (다음 자릿수로 이동) -> n = 3
4. 3을 얻고 뒤집은 결과에 추가
• digit = n % 10 (일의 자리 숫자인 3을 얻음)
• reversed = reversed * 10 + digit (기존 결과인 87이 3을 더해줌)
• 결과: reversed = 87* 10 + 3 = 873, n = n / 10 (다음 자릿수로 이동) -> n = 0
5. 반복 종료: n이 0이므로 반복문 종료
✔️ int max = (reversed_A > reversed_B) ? reversed_A : reversed_B;
위 코드는 삼항 연산자를 사용하여 두수 중에서 더 큰 수를 max 변수에 할당하는 구문이다.
삼항연산자는 아래와 같은 형태를 가진다.
조건식 ? 참일 때의 값 : 거짓일 때의 값
조건식이 true 일 때는 참일 때의 값이 선택되고, false 일 때는 거짓일 때의 값이 선택된다.
따라서, max 변수에는 두 수 중에서 더 큰 값을 저장하게 된다.
'문제' 카테고리의 다른 글
(백준) 2566번 '최댓값' (0) | 2023.08.08 |
---|---|
(백준) 2738번 '행렬 덧셈' (0) | 2023.08.08 |
(백준) 11718번 '그대로 출력하기' (0) | 2023.08.05 |
(백준) 1152번 '단어의 개수' (0) | 2023.08.02 |