Algorithm 2

Jina·2020년 4월 7일
0

전체적으로 풀이가 비슷했음
숫자를 문자열로 바꾼 후 문자열 슬라이싱으로 뒤에서 부터 출력하도록 함
그 이후 문자열을 다시 int형으로 바꾸도록 만듬

1. 내 풀이

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

풀이방식

처음에는 문자열로 return하려고 생각해서 위의 풀이 방식보다 상당히 복잡했음
데이터 타입이 int인 상태의 0321은 321로 출력되는 반면 문자열인 경우 0321로 출력되었기 때문에 그것을 고치는 과정이 필요했음

고치는 과정은 아래와 같았음
if문으로 숫자끝에 0이 있는지 없는지 판단하고 맨 마지막 숫자가 0인 경우 그 부분을 제외하고 출력하는 방식
따라서 if문 안에 if / else 가 하나씩 더 들어갔어야했고 x=0 인 경우를 따로 고려해줬어야했음

int로 데이터 타입을 바꾸면 위의 귀찮았던 과정이 사라지게됨!

2. 다른 풀이 1

def reverse(x):
    if '-' in str(x) :
        return -int(str(x)[:0:-1])
    return int(str(x)[::-1])

알게된 점

다른 풀이방식을 보고 else를 굳이 쓰지않아도 되는 것을 알게됨..!

내 풀이와 차이점

나는 x를 음수 양수로 나누었는데 다른 풀이에서는 문자열에 - 부호가 있는지를 판단함

3. 다른 풀이 2

def reverse(number):
	string = str(number)
	if string[0] == '-':
		string = string[::-1]
		new_string = string[-1]+string[:-1]
		return int(new_string)
	string = string[::-1]
	return int(string) 

풀이방식

위의 풀이방식은 문자열에 - 가 있는지 판단 ( 짝의 풀이와 비슷 )
1, 2번의 풀이 과정에서는 return 할 때 -를 붙였음

3번의 풀이 방식에서는 변수를 이용하여 음수를 처리함

만약 숫자가 -4351이면
string = string[::-1]의 과정을 거치면 1534- 가 됨

string[-1] 은 - 가 되고
string[:-1]은 1534가 됨
new_string으로 위치를 바꿔주면 -1534로 !


문제 출처는 wecode !

0개의 댓글