#52. 백준 2908번 문제 풀이: 상수 | 문제 원본 보기 |
--입력-- 734 893 --출력-- 437 --입력-- 221 231 --출력-- 132 --입력-- 839 237 --출력-- 938
숫자를 문자열로 받고 리버스해서 숫자로 변환해서 값을 비교하면 된다. 문자열 순서를 뒤집으려면 -- 문자열 앞부터 한글자씩, 끝부터 한글자씩 중간위치까지 서로 바꾸어 주면 됩니다. s = "abc"; t = s[0]; s[0] = s[2]; s[2] =t; 처름 스왑을 해 주면 됩니다. -- 물론 파이썬이나 C++에 reversed 함수가 존재하지만, 문제의 의도나 알고리즘 공부를 위해 위의 원리로 직접 구현하도록 하겠습니다.
파이썬에서는 두 값을 바꾸는 문법이 간단하다 a, b = b, a # a, b 두값을 서로 바꿈. 문자열을 리스트로 만드는 문법은, lst = list("문자열") # ['문','자','열'] 리스트로 만들어 준다.
# 직접 구현한 문자열 뒤집기 함수
def my_reversed(s):
lst = list(s) # 문자열을 글자단위로 나누어 리스트로 넘겨둔다.
l = len(lst)
l2 = l // 2 # 문자열 중간까지만 서로 문자를 바꾸기 위해 길이 반값 계산
for i in range(l2): # 길이의 반만 루프돌림.
lst[i], lst[l-i-1] = lst[l-i-1], lst[i] # 앞과 뒤값을 바꿔줌
return "".join(lst) # 리스트를 문자열로 만들어서 리턴해 줌
n1, n2 = input().split()
# 공백으로 구분해서 두 숫자문자열을 받는다.
n1 = my_reversed(n1) # 문자열을 뒤집어 준다.
n2 = my_reversed(n2)
if int(n1) > int(n2): # 정수형으로 크기를 비교해서 큰 값 출력
print(n1)
else:
print(n2)