[백준 알고리즘]2908번 "상수"

LEE EUN JIN·2021년 8월 21일
0

[백준 알고리즘]2908번 "상수"

문제

백준 2908번

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

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

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

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

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

예제 입력1
734 893

예제 출력1
437

문제 풀이

  1. 숫자를 거꾸로 변환해주는 함수를 만든다.

    일의 자리, 십의 자리, 백의 자리를 찾는다.
    그리고 일의 자리를 백의 자리로, 십의 자리는 그대로, 백의 자리는 일의 자리로 만든다.

  2. 두 개의 숫자를 입력받는다.

  3. 그리고 두 개의 숫자를 각 각 거꾸로 변환해주는 함수에 넣고 바꾼다음, 바꿔진 두 숫자를 비교해서 더 높은 숫자를 출력한다.

def upside_down(n):
   first_num = n % 10
   middle_num = (n % 100) // 10
   last_num = n // 100
   result = first_num * 100 + middle_num * 10 + last_num
   return result

a, b = map(int, input().split())
upside_down_a = upside_down(a)
upside_down_b = upside_down(b)
if upside_down_a > upside_down_b:
   print(upside_down_a)
else:
   print(upside_down_b)

0개의 댓글

관련 채용 정보