국문과 유목민

18. 문자열을 정수로 바꾸기 본문

알고리즘_코딩테스트/프로그래머스_Level1

18. 문자열을 정수로 바꾸기

논곰 2020. 9. 10. 21:59

0. 문제

링크) https://programmers.co.kr/learn/courses/30/lessons/12925

 

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

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

programmers.co.kr

1. 알고리즘 계획

- 그냥 문자를 int()형변환 시켜서 출력


2. 나의 코드

def solution(s):
    return int(s)


3. 다른 사람의 코드

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]을 이용해 1의 숫자리부터 천의 숫자까지 리스트를 뒤집음

- 값을 하나씩 곱해주면서, idx위치에 10씩제곱하면서 자릿수에 맞는 숫자를 삽입해줌

ex)

 1234인 경우, [4, 3, 2, 1]이 되고, for문을 돌면서 4+20 + 300+ 1000이 된다. 그러면 1234가 되고, 만약 앞에 '-'가 있을 경우 기존 값에 -1곱해준다.


4. 정리 및 리뷰

- 처음 문제를 너무 날로 먹으려고 했던 생각이 있긴해서, 다르게 풀어보려고 했으나 결국 날로 먹어버림.

- 하지만 덕분에 다른 사람의 괜찮은 코드를 접할 수 있었다. enumerate의 사용이나, 자릿수를 떼어내 계산하는 방법 등에 대해서도 알게 되었다.


코드 만족도: ★★★


'알고리즘_코딩테스트 > 프로그래머스_Level1' 카테고리의 다른 글

20. 약수의 합  (0) 2020.09.10
19. 시저암호  (0) 2020.09.10
17. 수박수박수박수박수박수?  (0) 2020.09.10
16. 소수 찾기  (0) 2020.09.10
15. 서울에서 김서방 찾기  (0) 2020.09.10
Comments