View

문제

reverse 함수에 정수인 숫자를 인자로 받습니다.

그 숫자를 뒤집어서 return해주세요.

x: 숫자

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

예들 들어,

x: 1234

return: 4321
x: -1234

return: -4321
x: 1230

return: 321

 

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

풀이 1

def reverse(number):
    if number >= 0:
        y = str(number)
        z = "".join(reversed(y))
        return int(z)

     if number < 0:
        y = str((-1) * number)
        z = "".join(reversed(y))
        return (-1) * int(z)

 

풀이 2

def reverse(number):

    return int(str(number)[::-1]) if number >= 0 else (-1) * int(str(abs(number))[::-1])

 

풀이 3

def reverse(number):

    return int(str(number)[::-1]) if number >= 0 else int("-" + str(abs(number))[::-1])

 

[문제 풀이시 고려한 사항]

  • 인자가 number(숫자)일 경우에는 항상 0일 경우를 고려하자.

  • 정수(양수, 0, 음수)가 인자로 오므로 number <=0(음수) 인 경우 고려하자.
    [-를 땐 상태에서 문자열로 바꾸기]
    <-를 때는 방법>
    풀이1 .     (-1) 곱해서 양수로 만들기
    풀이2, 3. abs()함수 만들어서 절대값 구하기
    <-를 붙이는 방법>
    풀이1,2 .     (-1) 곱해서 음수로 만들기
    풀이3.          '-' 문자열 붙여서 숫자형태로 형변환하기

  • 숫자를 Interger인 형태로 뒤짚을 수 있는가? => 없다면 다른 형태로 변환하여야한다.(문자열)

  • 숫자를 문자열 형태로 바꿀 경우 고려사항.
    문자열은 2가지 속성을 가지고 있다. 
    예, a ='winner'
    a의 첫번째 모습은 보여지는 그대로의 'winner' 그 자체의 모습
    a의 두번째 모습은 ['w', 'i', 'n', 'n', 'e', 'r'] 리스트 모습 

  • 데이터 형태를 바꾸는 방법
    1. 문자 a  => 숫자 int(a)
    2. 숫자 int(a) =>  문자 str(int(a))

  • 인덱싱 사용하기
    문자열의 두번째 모습을 사용하여 인덱싱으로 순서 뒤바꾸기
    a ='winner' // b = str(a)[::-1] => print(b) => 'renniw' // 처음부터 끝까지 
    a[::-1] => 끝에서부터 앞까지 -1 씩 빼면서
    a[:3:-1] => 끝에서부터 Index = 3 전까지 -1 씩 빼면서⠀     =>  're'
    a[5:2:-1] => index = 5 부터 index =2 전까지 -1씩 빼면서 => 'ren'

  • 삼항 연산자 사용 :  return x if y else z
    - y가 참일 경우 : x를 리턴
    - y가 거짓일 경우 : z를 리턴
Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31