[백준 2908번-파이썬/Python] 상수
알고리즘 공부/BOJ백준 풀이

[백준 2908번-파이썬/Python] 상수

http://acmicpc.net/problem/2908

{코드}

nums = map(int, map(lambda s: s[::-1], input().split()))
print(max(nums))

{설명}

이 문제는 map함수와 문자열 슬라이싱을 통해 쉽게 풀 수 있습니다.

  • 두 번째 map부터 살펴보면 람다 함수를 이용해 문자열을 뒤집는 코드입니다.

  • 그 후 첫 번째 map이 각 뒤집은 문자열들을 숫자로 변환시킵니다.

  • 그 후 최댓값을 출력하면 됩니다.

{코드}

nums = list(map(lambda s: s[::-1], input().split()))
print(nums[0] if eval('>'.join(nums)) else nums[1])

{설명}

위의 코드는 eval함수를 사용한 것인데 제 이전 글을 보시면 eval은 주어진 문자열의 값을 반환하는 함수입니다.

  • 먼저 첫 번째 코드와 같이 입력받은 문자열을 각각 뒤집고 이를 리스트로 만듭니다.

  • 그리고 만약 첫번째 값이 두 번째 값보다 크다면 ( 예시를 734 893으로 하면 eval에는 "437>398"이 들어가고 반환 값은 True입니다.)

  • 첫 번째 값을 출력하고 아니면 두 번째 값을 출력합니다.