STUDY 기록/코테기록
[프로그래머스] 문자열을 정수로 바꾸기
TREEKIM
2022. 6. 20. 20:41
문제 설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한 조건- s의 길이는 1 이상 5이하입니다.
- s의 맨앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져있습니다.
- s는 "0"으로 시작하지 않습니다.
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
내가 푼 풀이
def solution(s):
return -1*int(s[1:]) if s[0] == "-" else 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]은 주어진 스트링을 거꾸로 만들어 버립니다. 그 다음에 enumerate 함수를 이용하여 한 글자당 인덱스를 배정해서 각 자리에 10의 지수만큼 곱해서 더해주는 거네요. 예를 들면 "-1234"는 str[::-1]에 의해 "4321-"가 되고 4 * (10 ** 0) + 3 * (10 ** 1) + 2 * (10 **2) + 1 * (10 ** 3)를 한 이후에 "-" 는 이 숫자를 마이너스로 만들어 버립니다.
def strToInt(str):
#함수를 완성하세요
a = int(str)
return a
어려운 길로 갈 필요가 없는 문제였네요..정수형으로 바꿀 때 문자 +, -는 알아서 양,음의 기호로 인식하나보네요
배운 점
int 함수는 자동으로 -를 인식하는구나!