본문 바로가기
Java

[백준] 코딩테스트 문제 2908 : 상수

by 리슈다 2023. 7. 20.

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

 

2908번: 상수

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

www.acmicpc.net

 

문제

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

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

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

입력

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

출력

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


(정)상수

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int A = sc.nextInt();
        int B = sc.nextInt();
        int[] a = new int[3];
        int[] b = new int[3];
        int c = 0;
        int d = 0;
        
        a[0] = A/100;
        a[1] = (A%100)/10;
        a[2] = A%10;
        
        b[0] = B/100;
        b[1] = (B%100)/10;
        b[2] = B%10;
        
        c = a[0] + (a[1] * 10) + (a[2] * 100);
        d = b[0] + (b[1] * 10) + (b[2] * 100);
        
        if(c > d){
            System.out.println(c);
        }
        else{
            System.out.println(d);
        }
        
      
    }
}

 푸는 방법이 많아 보이는 문제지만.. 생각나는 방법은 3자리 수 2개를 입력받은 뒤 배열 하나에 자릿수 하나씩 넣고 이후 다른 변수에 뒤집어서 넣는 방법을 택했다. 위는 매우 원시적인 방법을 사용한 것 같고.. 검색해보니 문자열로 반환시킨 뒤 reverse() 메소드를 사용하는 방법이 있었다.. 물론 처음 보는 내용이라 '아 이걸 쓸걸 그랬네'와 같은 생각은 일절 들지도 않았던 건 안비밀.

 

다른 방법들:

https://st-lab.tistory.com/66

 

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

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

st-lab.tistory.com