2020. 4. 24. 13:59

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

문제 설명


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

 

제한 조건


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

 

문제 풀이


def solution(s):
    return int(s)

말그대로 문자열을 정수형으로 형변환해서 리턴

 

다른 풀이


사실 이 문제는 내가 푼 방법보다 다른 진짜 알고리즘을 적용해서 풀이한 방식들을 소개하는게 이 포스팅에서 더 유용한 정보가 될 것 같다.

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]은 매게변수 str을 거꾸로 즉 역순으로 배열을 재배치한다. enumerate를 이용해 idx값으로 자릿수 값을 받아서 한글자당 10의 지수만큼 곱한뒤 더해준다.

예를들어 -1234가 str로 주어졌다고 한다면

str[::-1]에 의해 "4321-"가 되고 4 * (10 ** 0) + 3 * (10 ** 1) + 2 * (10 **2) + 1 * (10 ** 3)를 한 이후에 "-" 는 이 숫자를 마이너스로 만들어 버린다.