[CodeKata]Day4

박민하·2022년 6월 12일
0

python 문제

목록 보기
19/49
post-thumbnail

Code Kata 란, 2인 1조의 구성으로 서로 협력하여 하루에 한 문제씩 해결하는 과제입니다.


# 문제

숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요.

  • num: 숫자
  • return: true or false (뒤집은 모양이 num와 똑같은지 여부)

예를 들어,

num = 123
return false 
=> 뒤집은 모양이 321 이기 때문
num = 1221
return true 
=> 뒤집은 모양이 1221 이기 때문
num = -121
return false 
=> 뒤집은 모양이 121- 이기 때문
num = 10
return false 
=> 뒤집은 모양이 01 이기 때문

# 코드

# codekata day2 응용 - 오류

def reverse(number):
  if number < 0:
    number *= -1
    new_number = -int(str(number)[::-1])
    return new_number
  else:
    return int(str(number)[::-1])

def same_reverse(num):
    rev_num = reverse(num)
    if num < 0:
      return False
    if num == rev_num:
      return True
    elif num != rev_num:
      return False

print(same_reverse(121))

#Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
#   File "<stdin>", line 2, in same_reverse
#   File "<stdin>", line 7, in reverse
# TypeError: 'str' object is not callable

# 개선 답안

def same_reverse(num):
  return True if str(num) == str(num)[::-1] else False

# 더 개선된 답안

def same_reverse(num):
  return str(num) == str(num)[::-1]

☑️ return 값에 == > < 같은 비교 연산자가 들어가면 boolean type이라서 True ifelse False 생략가능

# 풀이 과정

  1. if문, slice 사용.
  2. 음수일때 return 값이 str으로 반환되어 error 발생?
profile
backend developer 🐌

0개의 댓글