Python_문자열을 정수로 바꾸기

김보람·2022년 4월 17일
0

Python

목록 보기
25/39

<문제>

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

<풀이>

def solution(s):
    s = int(s)
    return s

<다른 풀이>

def solution(str):
    result = 0

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

    return result

<코드 해설>

다른 풀이법에서, enumerate를 쓴 것이 인상깊는다. enumerate는 반복문을 사용 할 때 몇 번째 반복문인지 인덱스 번호를 매겨주는 요소라고 생각하면 된다. 코드 설명은 다음과 같다.
예) '1234'입력
 str[::-1]에 의해 4321로 바뀜.
 이때, enumerate에 의해 idx = 0, number = 4
 else구문에서 reseult값은 int(4)*(10**0) = 4
 for문에 의해 다시 돌아가면 idx = 1, number = 3
 else구문에서 reseult값은 int(3)*(10**1) = 30
 result += 에 의해 4 + 30 = 34 도출
 이러한 형태로 1까지 가게 되면 1234 정수 값이 도출된다.
예) '-1234'입력
 str[::-1]에 의해 4321-로 바뀜.
 위에 설명한대로 idx = 3, number 1까지 했을 경우 1234가 도출된다.
 그 후, - 가 있으니 1234 * '-' 값인 -1234 도출

<느낀점>

알고리즘을 알고리즘처럼 푸는 것이 쉽지 않다.

profile
starry_developer

0개의 댓글