
파이썬에서는 문자열을 뒤집을 때 slicing을 하고 스텝에 -1을 주면 손쉽게 주어진 문자열을 반대로 뒤집을 수 있는걸 알고 있었기에 이번 문제는 그렇게 어렵지 않게 풀 수 있었다.
def reverse(x):
is_negative = False
x = str(x)
if x[0] == "-":
x = x[1:]
is_negative = True
rev_x = x[::-1]
if is_negative:
rev_x = "-" + rev_x
rev_x = int(rev_x)
return rev_x
주어진 문자열을 뒤집어야하기 때문에 우선 x를 문자열로 casting했다. 주어진 조건 중에 주어진 수가 음수인 경우도 판별해야했기에 is_negative라는 Boolean 값을 지정해주었다. 그래서 조건문을 사용해서 만약 주어진 문자열 x의 0번째 요소가 - 일 때, - 부호를 제외한 나머지를 slicing했고, 음수를 판별하는 is_negativ는 True로 값을 주었다. 이 경우를 따로 판별하기 위함이다.
이렇게 작업을 한 후 x[::-1] 을 통해 문자열을 반대로 뒤집었고, is_negative 가 True인 경우는 뒤집어진 문자열 rev_x 의 앞에 - 부호만 붙여주었고, 음수가 없었던 경우는 그냥 뒤집은 숫자 그대로 rev_x 변수에 담았다. 현재는 문자열 상태이기 때문에 마지막으로 int로 형변환해주었더니 원하던 출력이 나왔다.
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)
모델 솔루션도 비슷한 비슷한 로직으로 접근하셨어서 오늘의 코드카타는 나름 만족스러웠다.🙂