문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
문제링크
풀이
일단 문제를 읽자마자 띠용함
그냥 숫자열로 변환만 하면 되는 거 아닌가 싶어서 일단 넣어봤는데 정답처리가 됐다!
def solution(s):
answer = int(s)
return answer
너무 간단하게 끝나서 혹시 다른방법이 있을까 찾아봤다
다른사람 풀이
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(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
이 분 건 아직 잘 이해가 안 되긴 한데 다른 분 블로그에서 해설을 긁어왔다
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