코드카타 Week1 - Day2

최대환·2021년 5월 7일
0

알고리즘

목록 보기
2/8

문제

reverse 함수에 정수인 숫자를 인자로 받습니다.
그 숫자를 뒤집어서 return해주세요.
x: 숫자
return: 뒤집어진 숫자를 반환!
예들 들어,

x: 1234
return: 4321
x: -1234
return: -4321
x: 1230
return: 321

풀이

  • my solution
def reverse(number):
  # 수가 양수일 때에는 문자열을 뒤집는다.
  if number > 0:
    str_number = str(number)
    reverse_number = str_number[::-1] 
    return int(reverse_number)
    
  # 수가 0이면 0을 리턴하고
  elif number == 0:
    return 0
  
  # 수가 음수이면 절댓값으로 만들어 뒤집고 마지막에 -1을 곱한다.
  else:
    str_number = str(abs(number))
    reverse_number = int(str_number[::-1])
    return reverse_number * -1
  • model solution
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)
  • code review
    • 처음에는 리스트 슬라이싱을 하려면 리스트로 해야된다고 생각했지만, 사실 Slicing은 오리지널 list를 수정하는게 아니라, 새로운 list를 만드는 것이기 때문에 문자열로 해도된다.
    • 굳이 0 일때를 넣지 않았어도 됐다.
profile
나의 개발지식 output 공간

0개의 댓글