- 문제
reverse 함수에 정수인 숫자를 인자로 받습니다.
그 숫자를 뒤집어서 return해주세요.
x: 숫자
return: 뒤집어진 숫자를 반환!
예들 들어,
x: 1234 ====> return: 4321
x: -1234 ====> return: -4321
x: 1230 ====> return: 321
def reverse(x):
numArr = []
sig = 1
if x < 0 :
sig = -1
x = x*-1
while x != 0:
numArr.append(x%10)
x = (int)(x/10)
numArr.reverse()
for i in range(len(numArr)):
x += numArr[i]*(10**i)
if sig == -1:
x = x*-1
return x
내 솔루션은 매우 '원시적'이었다. C나 JAVA로 코딩하던 시절에는 필요한 메소드들을 직접 만들어서 쓰는 방식이 많았다.
그러나, Python은 대부분의 메소드들을 지원하는 경우가 많았는데, 난 그걸 이해하지 못하고 간단한 Reverse함수 조차도 다 만들어서 구현했다. 그래서 코드가 다소 멀리 둘러가는 느낌이었다.
def reverse(number):
string = str(number)
if string[0] == '-':
string = string[::-1]
new_string = string[-1]+string[:-1]
return int(new_string)
string = string[::-1]
return int(string)
멘토의 솔루션은 Python의 String 메소드를 완벽하게 활용했다.
number를 String화 해서 양수이면 string[::-1] 처럼 List Slicing해서 역순으로 저장한 후 Int화 하여 간결하게 출력했다.
음수일 경우에는 역순으로 만든다음 마지막의 부호 '-'를 앞으로 갖다붙여서 int화 시켜 출력하면 끝.
Python의 방식으로 사고하는 방식도 배워둘 필요가 있겠다.