관리 메뉴

LC Studio

백준 2908번 상수 (JAVA) 본문

Java/백준 알고리즘

백준 2908번 상수 (JAVA)

Leopard Cat 2022. 3. 17. 16:38

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

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

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

입력

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

출력

첫째 줄에 상수의 대답을 출력한다.

문자열을 뒤집어 비교하는 문제였다.

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();

        sc.close();

        A = Integer.parseInt(new StringBuilder().append(A).reverse().toString());
        B = Integer.parseInt(new StringBuilder().append(B).reverse().toString());

        System.out.println(A > B ? A:B);
    }
}

이번 문제는 잘 안풀려서 다른 블로그를 그대로 따라했다 -> https://st-lab.tistory.com/66

 

[백준] 2908번 : 상수 - JAVA [자바]

https://www.acmicpc.net/problem/2908 2908번: 상수 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하

st-lab.tistory.com

StringBuilder와 revers에 대해 몰라, 수학적으로만 접근하다 시간을 너무 많이 소비했기 때문이다.

StringBuilder 는 문자열을 다루는 클래스로 많이 쓰이고 있는데,

여기서 reverse() 라는 아주 좋은 메소드를 포함하고 있다고 한다.

 

위의 StringBulider의 뒤에 붙은 .append()안의 값이 StringBuilder로 전달되고, 뒤의 reverse를 통해 뒤집어지고, int형 변환을 위해 toString을 붙여준다. 이렇게 푸는 문제였구나... 화이팅!

반응형