JSITCLUB
파이썬 - 프로그래머스 - 문자열을 정수로 바꾸기 본문
프로그래머스 level 1
문제 설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한 조건
-
s의 길이는 1 이상 5이하입니다.
-
s의 맨앞에는 부호(+, -)가 올 수 있습니다.
-
s는 부호와 숫자로만 이루어져있습니다.
-
s는 0으로 시작하지 않습니다.
입출력 예
예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
풀이 및 코드 |
사실 이 문제는 파이썬에서는 아주 간단히 처리할 수 있습니다. 그냥 형 변환으로 간단히 끝낼 수 있기 때문입니다.
def solution(s):
return int(s)
하지만 이 방법은 너무 파이썬에 치우친 방법이므로, 다른 언어에서도 사용 가능한 방법을 생각해 보겠습니다.
우리가 흔히 사용하는 수는 십진수를 사용합니다.
즉 1234는 1 * 1000 + 2 * 100 + 3 * 10 + 4 * 1을 의미합니다.
이것을 이용해 한 자리씩 바꿔보면 다음과 같습니다.
def solution(s):
result=0
plus=True
for i in range(len(s)):
if s[i]=="-":
plus=False
elif s[i]=="+":
plus=True
else:
result=result*10 + int(s[i])
if plus==False:
return -1 * result
else:
return result
print(solution("+14215"))
주의 할것은 우리가 흔히 숫자를 생각하면 1265 나 -1342 형태를 생각하지만, 문제에서는 분명히 +,-,숫자로 구성되어 있다고 했으니 +1354 와 같이 앞에 +기호가 붙은것도 생각해 주어야 합니다. 나올수 있는 경우를 빠뜨리지 않는것이 프로그래밍 할때 중요 합니다.
또한 프로그래머스에서 요구하는것은 함수를 완성하는것이므로, 제출할 때는 제일 밑의 print(solution("+14215")) 문장은 제외하고 위의 solution함수의 내용만 제출합니다.
'파이썬 > 문제풀이' 카테고리의 다른 글
파이썬 - 프로그래머스 - 가운데 글자 가져오기 (0) | 2020.01.03 |
---|---|
파이썬 - 프로그래머스 - 서울에서 김서방 찾기 (0) | 2020.01.02 |
파이썬 - 프로그래머스 - 수박수박수박수 (0) | 2019.12.30 |
파이썬 - 프로그래머스 - 직사각형 별찍기 (0) | 2019.12.28 |
파이썬 - 프로그래머스 - 짝수 와 홀수 (0) | 2019.12.28 |
Comments