본문 바로가기
코딩공부/백준 (java)

[백준 2908] 상수 (java)

by CodingKwon 2021. 7. 15.

문제 링크

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

 

2908번: 상수

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

www.acmicpc.net

 

나의 코드 (java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main (String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // 입력을 받음
        String s = br.readLine();

        // 배열에 공백을 기준으로 나눠서 저장
        String arr[] = s.split(" ");
        // 거꾸로 읽은 수를 저장할 배열
        int result[] = new int[2];

        for (int i=0; i<arr.length; i++){
            // 배열의 숫자를 받아옴
            int tmp = Integer.parseInt(arr[i]);
            // 백의 자리 숫자
            int tmp_100 = tmp/100;
            // 십의 자리 숫자
            int tmp_10 = (tmp%100)/10;
            // 일의 자리 숫자
            int tmp_1 = tmp%10;

            // 역수로 다시 저장
            result[i] = tmp_1*100 + tmp_10*10 + tmp_100;
        }

        // 크기 비교 후 큰 값 출력
        if (result[0] > result[1]){
            System.out.println(result[0]);
        } else {
            System.out.println(result[1]);
        }
    }
}

 

제가 사용한 방법은 각 자리의 숫자를 추출하여 다시 재조합 후 두 수를 비교하는 방식을 사용했습니다.

 

각 자릿수를 추출하는 방법입니다.

 

백의 자리 숫자  :  int tmp_100 = tmp/100;
십의 자리 숫자  :  int tmp_10 = (tmp%100)/10;
일의 자리 숫자  :  int tmp_1 = tmp%10;

 

 

이를 이용하여 다시 숫자를 재조합합니다.

 

result[i] = tmp_1*100 + tmp_10*10 + tmp_100;

댓글