상세 컨텐츠

본문 제목

[Java] 연습문제1 - 정수 자료형 숫자 거꾸로 변환

Java/제로베이스

by Gopythor 2023. 1. 7. 04:25

본문

728x90
반응형

Practice1

문제 설명

입력된 정수 자료형의 숫자를 거꾸로 변환하는 프로그램을 작성하세요.

  • 예를들어 12345가 입력되면 54321로 변환하여 출력하면 된다.
  • 100의 경우 001이 되는데 이 경우 1만 출력하도록 한다.

입출력 예시

입력결과

12345 54321
-12345 -54321
100 1
0 0

 

모범답안

    public static void solution(int num) {
        int numReverse = 0;
        boolean isMinus = false;
        
        if (num < 0); {
            isMinus = true;
            num *= -1;
        }

        while (num > 0) {
            int r = num % 10;
            num /= 10;
            numReverse = numReverse * 10 + r;
        }
        System.out.println(isMinus ? numReverse * -1 : numReverse);
    }
  • 가독성이 좋다.
  • 음수일 시, isMinus는 true가 된다.
  • 음수 구분을 따로 구분하여, 양수로 변환한 후 값을 구한다.
  • r은 나머지를 구하는 부분이다.
  • num은 1자리 연산이 끝난 후, 1의 자리 수를 없애는 역할을 한다.
  • numReverse는 10 이 곱해진 후, r이 더해진다.
  • 출력 부분에서도 3항 연산자를 사용하여, 음수인 경우 -1을 곱하게 하였다.

내코드

  public static void solution(int num) {
        int ans = 0;
        while (num != 0){
                ans *=10;
                ans +=num%10;
                num = num/10;
        }
        System.out.println(ans);
    }
  • 음수, 양수 상관없이 구현된다.
  • 음수일 경우를 고려하여 while은 0이 아니면 계속 돌게 하였다.
  • 주어진 num이 0이면 while문은 끝난다.
  • ans는 0으로 초기화되어, 다음 숫자를 추가하기 전에 10배 되어진다.
  • num의 나머지가 ans에 들어가고, num의 1의 자리 수는 없어진다.
  • 나머지 부분은 -로 들어가기 때문에 따로 음수 검토 부분을 구현하지 않았다.
728x90
반응형

관련글 더보기

댓글 영역