본문 바로가기

BAEKJOON/수학

백준 2908번 [상수](JAVA)-yes6686- 티스토리

728x90
반응형
SMALL

백준 문제 풀이: 2908 [상수]


문제 링크: https://www.acmicpc.net/problem/2908

문제 설명:

두 세 자리 숫자 AB가 주어집니다. 각 숫자를 거꾸로 읽었을 때 더 큰 숫자를 출력하는 문제입니다.


문제 해결 코드


import java.util.Scanner;

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

        // 입력 받기
        int a = scanner.nextInt();
        int b = scanner.nextInt();

        // 숫자 뒤집기
        int ra = (a % 10) * 100 + (a % 100 - a % 10) + (a / 100);
        int rb = (b % 10) * 100 + (b % 100 - b % 10) + (b / 100);

        // 더 큰 숫자 출력
        if (ra > rb) {
            System.out.println(ra);
        } else {
            System.out.println(rb);
        }
    }
}

예제 입력:

734 893

예제 출력:

437

코드 설명

  • 핵심 알고리즘: 세 자리 숫자를 뒤집는 방법을 활용하여, 뒤집힌 두 숫자 중 큰 값을 출력합니다.
  • 구현 세부사항:
    • (a % 10) * 100: 숫자의 1의 자리를 100의 자리로 이동합니다.
    • (a % 100 - a % 10): 숫자의 10의 자리를 그대로 가져옵니다.
    • (a / 100): 숫자의 100의 자리를 1의 자리로 이동합니다.
  • 시간 복잡도: 입력값의 길이가 고정된 세 자리 숫자이므로, 모든 연산은 O(1)입니다.

결과

입력된 두 숫자를 거꾸로 읽었을 때 더 큰 값을 출력합니다. 문제는 간단한 숫자 조작 및 조건문 활용을 연습하기에 적합합니다. 추가적인 질문이나 개선 사항이 있다면 댓글로 알려주세요!

728x90
반응형
LIST