📚코딩테스트/🧑🏻💻Python
[프로그래머스] Level 1 문자열을 정수로 바꾸기 - Python
와이드윤
2023. 7. 10. 10:18
728x90
문제 설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한 조건
- s의 길이는 1 이상 5이하입니다.
- s의 맨앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져있습니다.
- s는 0으로 시작하지 않습니다.
입출력 예
예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
풀이
def solution(s):
answer = int(s)
return answer
보자마자 그냥 int로 변환하면 되는거 아닌가 싶었다.
그래서 다른 사람 풀이 봤더니
def strToInt(str):
result = 0
for idx, number in enumerate(str[::-1]):
if number == '-':
result *= -1
else:
result += int(number) * (10 ** idx)
return result
오...
[::-1]은 주어진 스트링을 거꾸로 만든다.
그 다음에 enumerate 함수를 이용하여 한 글자당 인덱스를 배정, 각 자리에 10의 지수만큼 곱해서 더하는 알고리즘
예를 들면 "-1234"는 str[::-1]에 의해 "4321-"가 되고,
4 * (10 ** 0)
+ 3 * (10 ** 1)
+ 2 * (10 **2)
+ 1 * (10 ** 3)를 한 이후에
"-" 는 이 숫자를 negative로 만들어 버린다.
뭐가 더 맞는 답인지는 잘 모르겠다.
728x90