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를 리턴
'코딩테스트' 카테고리의 다른 글
CodingTest) 신규 아이디 추천 (0) | 2021.12.21 |
---|---|
CodingTest) 로또의 최고 순위와 최저 순위 (0) | 2021.12.20 |
TIL | codecata_day1_index return 하기 (0) | 2021.08.17 |
reply