Computer Science/알고리즘 문제풀이

[프로그래머스][python] 12925. 문자열을 정수로 바꾸기

Question:

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

 

제한사항

  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 0으로 시작하지 않습니다.

 

Example:

numbersresult예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

 

My answer:

def solution(s):
	return int(s)

쉬운 문제였지만 포스팅 한 이유는 reference code가 인상적이었기 때문이다.

 

reference code:

def strToInt(str):
    result = 0

    for idx, number in enumerate(str[::-1]):
        if number == '-':
            result *= -1
        else:
            result += int(number) * (10 ** idx)

    return result
  • str[::-1] : 문자 뒤집는다. (일의자리수부터 시작)
  • index=0에는 일의자리, index=1에는 십의자리....
  • 만약 입력이 [-1234]라면 [4321-]를 만들고 4*10^0+3*10^1+2*10^2+1*10^3 그리고 마지막으로 "-"을 만나면 -1을 곱해주어 음수로 만든다.

-1234"