📚코딩테스트/🧑🏻‍💻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