알고리즘_코딩테스트/프로그래머스_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의 사용이나, 자릿수를 떼어내 계산하는 방법 등에 대해서도 알게 되었다.
코드 만족도: ★★★★☆