나의 풀이
def solution(s):
if s[0] == '-' :
return -(int(s[1:]))
elif s[0] == '+' :
return int(s[1:])
else :
return int(s)
return answer
맨 앞이 +,- 와 같은 부호로 시작하는 경우에는 1번째 인덱스부터 시작하는 문자열을 int형으로 바꾸고, 해당 부호 처리를 해주었다.
한편 부호가 없는 경우에는 그냥 문자열을 int 형으로 변환하였다.
다른 풀이
def solution(str):
#함수를 완성하세요
a = int(str)
return a
하핫,, 부호 처리를 해줄 필요가 없었다!!
문자열을 int() 형 처리해줄 때는 알아서 부호를 인식하나보다..!
def solution(s):
result = 0
for idx, number in enumerate(s[::-1]):
if number == '-':
result *= -1
elif number == '+':
pass
else:
result += int(number) * (10 ** idx)
return result
우와..이런 풀이도 가능하다니...!
s[::-1] 은 문자열의 끝에서부터 역순으로 읽어들이는 것을 뜻한다.
따라서 enumerate() 로 얻게 된 인덱스를 이용하여 1의자리부터~n의자리까지 10의 제곱수만큼 곱하는 형식이다.
예로 "-1234" 라는 문자열이 주어졌다고 하자.
4321- 을 순회하게 될 것이다.
먼저 4의 경우 4 * 10**0 = 4
3의 경우 3 * 10**1 = 30
2의 경우 2 * 10**2 = 200
1의 경우 1 * 10**3 = 1000
-> -1234
'알고리즘 > 이것저것' 카테고리의 다른 글
[프로그래머스] 소수 찾기 - 파이썬(python) (0) | 2022.09.04 |
---|---|
[프로그래머스] 수박수박수박수박수박수? - 파이썬(python) (0) | 2022.09.03 |
[프로그래머스] 시저 암호 - 파이썬(python) (0) | 2022.09.03 |
[프로그래머스] 약수의 합 - 파이썬(python) (0) | 2022.09.03 |
[프로그래머스] 이상한 문자 만들기 - 파이썬(python) (0) | 2022.09.02 |
댓글