공부하기/백준

[Java] 백준 풀기 2908 - 상수

XEV 2023. 6. 27. 23:49

자바 백준 2908번

브론즈 2

https://www.acmicpc.net/problem/2908

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 구현

 

 

 

 

 

문제 풀기

세 자리의 자연수를 10으로 나눈 나머지 및 몫을 구하면서 숫자를 뒤집는다.

Math.max() 를 이용하여 둘 중 큰수를 찾는다.

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        // 두 수를 입력 받음
        int number1 = sc.nextInt();
        int number2 = sc.nextInt();
        
        // reverseNumber 메서드를 이용해 숫자 뒤집음
        int reversedNumber1 = reverseNumber(number1);
        int reversedNumber2 = reverseNumber(number2);
        
        // 두 수를 비교하는 메서드
        int result = compareTheReversedNumbers(reversedNumber1, reversedNumber2);
        
        // 큰 수 결과 출력
        System.out.print(result);
    }

    // 숫자를 뒤집는 메서드
    public static int reverseNumber(int number) {
        int reversedNumber = 0;  // 변수 선언 및 초기화
        
        // 입력된 수를 10으로 나눈 몫이 0이 될때까지 반복
        while (number > 0) {
            // System.out.println("number: " + number);  // TEST PRINT
            int digit = number % 10;  // 매 loop마다 나머지를 구해 1의 자리 저장
            reversedNumber = reversedNumber * 10 + digit;  // 이전 loop에서 생성된 1의 자리 숫자에 10을 곱해 10의 자리로 만든 후 새로운 1의 자리 숫자 더함
            number = number / 10;  // 10으로 나눈 몫으로 1의 자리 제거
            // System.out.println("reversedNumber: " + reversedNumber);  // TEST PRINT
        }
        return reversedNumber;
    }
    
    // 큰 수 찾기
    public static int compareTheReversedNumbers(int reversedNumber1, int reversedNumber2) {
        // Math.max()를 사용하여 큰 수 찾기
        int maxReversedNumber = Math.max(reversedNumber1, reversedNumber2);
        return maxReversedNumber;
    }
    
}



/*

734 893

number: 734
reversedNumber: 4
number: 73
reversedNumber: 43
number: 7
reversedNumber: 437
number: 893
reversedNumber: 3
number: 89
reversedNumber: 39
number: 8
reversedNumber: 398

437

*/