coding test

[파이썬] 문자열을 정수로 바꾸기

잔망루피 2020. 12. 23. 22:47

programmers.co.kr/learn/courses/30/lessons/12925

 

코딩테스트 연습 - 문자열을 정수로 바꾸기

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니

programmers.co.kr

 

문제 설명

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

 

제한 조건

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

입출력 예

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

 

🎗 나의 풀이

 

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을 뒤에서부터 앞으로 간다.(거꾸로 뒤집기)

number가 음수라면 -1을 곱한 값을 리턴한다.(마지막에 실행될 코드)

그렇지 않다면 number를 int로 변환한 값에 10의 idx승을 곱한다.

ex) "-1234"

"4321-" =  -1 * (4 * (10 ^ 0) + 3 * (10 ^ 1) + 2 * (10 ^2) + 1 * (10 ^ 3))

반응형

'coding test' 카테고리의 다른 글

[파이썬] 시저 암호  (0) 2020.12.24
[파이썬] 내적  (0) 2020.12.24
[파이썬] 숫자의 표현  (0) 2020.12.23
[파이썬] 수박수박수박수박수박수?  (0) 2020.12.23
[파이썬] 소수 구하기  (0) 2020.12.21