Codecata ⎜ 숫자 reverse 하기
codecata 숫자 reverse 함수
문제
reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집어서 return해주세요.
x: 숫자 return: 뒤집어진 숫자를 반환!
예들 들어, x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321
내가 한 풀이
def reverse(x):
minus = False
if x < 0:
minus = True
x *= -1
str_x = str(x)
reverse_x = ""
for charactor in str_x[::-1]:
reverse_x += charactor
if minus == True:
return -1 * int(reverse_x)
else:
return int(reverse_x)
print(reverse(0))
코드카타 파트너 풀이(두연님)
두연님은 string말고 숫자로 계산해서 reverse를 하셨다. x=1234 라면 1x10^3 + 2x10^2 + 3x10^1 + 4x10^0 으로 생각하고, % 를 써서 나머지를 whilte 반복문을 통해 새로운 변수 result에 넣는 방법이다.
def reverse(x):
minus = False
result = 0
if x < 0:
minus = True
x *= -1
while x > 0:
result = (result * 10) + x % 10
x = x//10
if minus:
return result * -1
else:
return result
print(reverse(1230))
위코드 풀이
오로지 string으로만 접근해서 풀었다. 난 -값을 접근하려고 x < 0을 사용했지만 - 또한 파이썬에선 string으로 접근할 수가 있었다. (if string[0] == ‘-‘:)
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)
댓글남기기