문자열을 정수로 바꾸기
문제: https://programmers.co.kr/learn/courses/30/lessons/12925
1. 문제
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한 조건
s의 길이는 1 이상 5이하입니다.
s의 맨앞에는 부호(+, -)가 올 수 있습니다.
s는 부호와 숫자로만 이루어져있습니다.
s는 0으로 시작하지 않습니다.
입출력 예
예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
2. 나의 코드
def solution(s):
answer = 0
if len(s) >=1 and len(s) <=5 :
answer = int(s)
return answer
3. 다른 사람 코드
for idx, number in enumerate(str[::-1]):
if number == '-':
result *= -1
else:
result += int(number) * (10 ** idx)
return result
4. 보완
1) <enumerate() 함수>
for i, name in enumerate(['body', 'foo', 'bar']):
... print(i, name)
...
0 body
1 foo
2 bar
순서값과 함께 body, foo, bar가 순서대로 출력되었다. 즉, 위 예제와 같이 enumerate를 for문과 함께 사용하면 자료형의 현재 순서(index)와 그 값을 쉽게 알 수 있다.
for문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려주는 인덱스 값이 필요할때 enumerate 함수를 사용하면 매우 유용하다.
-출처: 점프 투 파이썬-
2) python array[::] 용법
arr[A:B:C]의 의미는, index A 부터 index B 까지 C의 간격으로 배열을 만들어라 라는 뜻.
만약 list =[1,2,3,4,5,6] 일때,
list[::-1]는 역순으로 처음부터 끝까지 1간격으로 배열을 만들라는 뜻.
list[1:5:2]는 인덱스 1부터 인덱스 5까지 2칸간격으로 배열을 만들라는 뜻.
맨 끝 인덱스(index B) 포함
출처: http://blog.wonkyunglee.io/3 [Kascia's blog]
'Computer Science > 알고리즘 문제풀이' 카테고리의 다른 글
Programmers > Sort > #21 H-Index [JAVA] (0) | 2018.10.18 |
---|---|
[Programmers] #20 라면공장 [JAVA] (0) | 2018.10.16 |
[Programmers] #18 문자열 내 p와 y의 개수 [Python] (0) | 2018.10.15 |
[Programmers] #17 더 맵게 [JAVA] (0) | 2018.10.09 |
[Programmers] #16 가장 큰 수 [JAVA] (3) | 2018.10.08 |