CodeCata - 1

이동근·2021년 1월 29일
0

코드카타

목록 보기
1/5

문제

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

코드

1. 문자열 버전(str)

def reverse(name):
    check = str(number)[::-1]         - 슬라이싱을 하는 것, 마지막 -1로 슬라이싱을 해주게 되면 역순으로 출력    
    if check[0] == 0:
        check = check[1:]
        
    if check[-1] == '-':
        check = int(check[:len(check)-1]) * -1
    return int(check)

-> 문자열로 reverse 함수를 만들기 위해서 저는 문자열 슬라이싱을 통해 문자열을 역순으로 만들어 주었습니다. 슬라싱을 할때 콜론으로 구분을 하는데 두 개의 콜론 맨 끝에 숫자를 넣게 되면 그 수 만큼 띄워서 슬라이싱을 하게 됩니다. 이 방법을 통해 맨 마지막에 -1을 넣게 되면 역순으로 문자열을 출력할수 있게 되고 그렇게 되면 역순으로 추출 할 수 있고 나온 수를 'check'라는 객체에 입력해 두었습니다. 만약 check의 첫번째가 0='0'이면 0을 제외하고 출력하기 위해 슬라이싱을 사용해서 맨 앞의 영을 빼고 출력합니다. 문자열인 check를 역순으로 배열하게 되면 '-'기호가 맨 뒤에 가기 때문에 문자열 check에서 맨 끝의 -를 뺀 나머지를 출력한 수 정수형으로 바꾸어 -1를 곱해서 음수를 만들어 줍니다 .그리고 return 하면 됩니다.

2. INT 버전

check = abs(number)                     - 절대값으로 만들어 준다.
result = 0
while check > 0:
    result = (result * 10) + (check % 10)
    check = check //10
    
    return result* -1 if number <0 else result

-> 숫자형으로 문제를 풀어보겠습니다. abs라는 함수를 사용하면 절대값으로 문자열을 바꿔주게 되는데 이 것을 check에 넣어줍니다. 그리고 result라는 변수에 0을 넣어주고 역순으로 나온 값을 넣어줍니다. while 구문을 사용해서 0 이상일 때는 반복해 줍니다. 앞에서 선언한 result = (result *10) + (check % 10), check//10을 통해 숫자열 반복을 통해 역순으로 출력합니다. 이후 return시 음수라면 -1을 곱하고 0보다 작으면 그냥 return 합니다.

profile
하루하루 1cm 자라는 개발자

0개의 댓글

관련 채용 정보