Codekata #4

Kiyong Lee·2021년 9월 16일
0

Codekata #4


1. 문제


2. 내 생각

두 가지가 생각났다

첫 번째는, 문자열로 바꿔서 역전개
두 번째는 몫과 나머지를 이용한 연산


3. 코드


3-1. 문자열로 전개

def same_reverse(num):
    # 아래 코드를 입력해주세요.
  if num < 0 : return False
  else :
    str_num = str(num)
    if str_num == str_num[::-1] :
      return True

1. 숫자가 음수일 경우, 마이너스 부호가 뒤로 가서 항상 False가 됨
2. 받은 숫자를 문자열로 변환하여 변수 str_num에 저장
3. str_num은 인덱싱/슬라이싱이 가능하기 때문에 역전개


3-2. 몫과 나머지 이용

def same_reverse(num):
  
  #음수일 경우, 마이너스 부호에 의해 항상 False
  if num < 0 : return False
  
  #1~9사이의 수는 항상 True
  elif num >0 and num < 10 : return True
  
  # 그 외 두자리수 이상의 정수부터 해당 코드 실행
  else :

    #반복문 돌리면서 넣어줄 값에 대한 변수
    new_val = 0
    
    #비교할 값
    #num은 반복문에서 계속 작업해가며 숫자 자체를 줄여나갈것이기 때문에 원본 숫자가 훼손됨
    #그래서 원본숫자를 저장할 변수로 final_val 설정
    final_val = num
    
    while num>0 :
      #공식
      new_val = new_val * 10 + num % 10

      #숫자를 10으로 나눈 몫만 추출해서 계산할 것이기 때문에 // 사용
      num = num // 10
    
    #결과를 통해 얻은 new_val과 final_val을 비교하여 T/F 리턴
    if new_val == final_val : 
      return True
    else : 
      return False

4. 후기

오늘은 새벽까지 안해도 된다잇

profile
ISTJ인 K-개발자

0개의 댓글