Python: Code Taka 1주차 4

dev-swd·2020년 11월 15일
0

Code Taka

목록 보기
4/12

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

num = 123
return false 
=> 뒤집은 모양이 321 이기 때문

num = 1221
return true 
=> 뒤집은 모양이 1221 이기 때문

num = -121
return false 
=> 뒤집은 모양이 121- 이기 때문

num = 10
return false 
=> 뒤집은 모양이 01 이기 때문

나의 답

def same_reverse(num):
  return str(num) == str(num)[::-1] if num >= 0 else False
  1. 펠린드롬.. 파이썬으로는 매우 쉽다. (처음 풀 때 너무 어렵게 풀어서 공식처럼 외우고 있다. 그래서 처음에 어렵게 풀었던 코드가 생각 나질 않는다.. 어떻게 풀었지...)
  2. 단지, 마이너스의 값일 경우에는 펠린드롬 숫자일 경우라도 False 가 되기 때문에, 음수일 경우에는 무조껀 False 를 하였다.

솔루션

def same_reverse(num):
    num =str(num)
    is_palindrome = True
    for i in range(len(num) // 2):
        if num[i] != num[-1 - i]:
            is_palindrome = False

    return is_palindrome
  1. 매개변수로 넘겨받은 num 값을 스트링을 변환한다.
  2. 불리언 값을 리턴할 변수를 만든다.
  3. 반복문을 실행하되, 스트링으로 변환한 num 을 2로 나눈 만큼만 반복한다. (길이가 홀 수일 경우, 가운데에 위치하는 값은 신경쓰지 않아도 되기 때문에. 체크하기 위한 반복문의 횟수를 반으로 줄일 수 있다.)
  4. num 의 0번째 값과 num 의 -1 번째 값(배열의 가장 끝)을 비교하여 다르다면, 팰린드롬이 아니기 때문에 False 를 불리언 변수에 대입한다.

배운점

솔루션에서 반복문을 매개변수 길이의 반 만큼만 돌려도 팰린드롬을 판단할 수 있다는 것.

profile
개발을 취미로 할 수 있는 그 때 까지

0개의 댓글