TIL 14. CodeKata week 1 -2

요니·2021년 10월 31일
0

Algorithm

목록 보기
2/4
post-thumbnail

CodeKata 2.

reverse 함수에 정수인 숫자를 인자로 받습니다.
그 숫자를 뒤집어서 return해주세요.

x: 숫자
return: 뒤집어진 숫자를 반환!

예를 들어,
x: 1234이면
return: 4321

x: -1234이면
return: -4321

x: 1230이면
return: 321

Solution

나의 Solution 👀

나는 일단 정수인 숫자를 인자로 받기 때문에 숫자를 string으로 변환해주고 문자열을 slicing하여 맨 마지막에서부터 가져오기로 했다. 이 때, 숫자 인자가 음수인 경우에는 부호는 그대로 유지하면서 숫자만 뒤집어서 반환해야하기 때문에 인자가 양수일 때와 음수일 때로 나누어 보았다.

그러나 음수일 때에는 맨 앞에 음수 부호(-)를 붙여줘야하는데 이미 string으로 변환이 되어있어서 -1을 곱할 수 없어 string으로 부호를 붙여주었다.

def reverse(number):
    if number > 0:
      renumber = str(number)[::-1]
      return renumber
    elif number < 0:
      number *= -1
      renumber = str(number)[::-1]
      return "-" + renumber

그 이외의 Solution 👀

숫자를 string으로 변환해주고 맨 마지막에서부터 slicing하여 가져오는 것은 내가 작성한 풀이법과 동일하였다.

숫자의 마지막이 0으로 끝나는 경우 뒤집어진 숫자에는 0이 나오면 안되기 때문에 slicing된 수를 index값 1부터 반환하도록 하였고 음수였던 경우 맨 마지막에 음수 부호(-)가 나오기 때문에 string을 다시 int로 변환하여 -1을 곱해주었다.

def reverse(number):
  res = str(number)[::-1]
  if res[0] == 0:
    res = res[1:]
  if res[-1] == '-':
    res = int(res[0:len(res)-1]) * -1
  return int(res)
profile
내가 나여서 빛이나기 위해😊

0개의 댓글