-
문자열 계산하기
문제 설명
my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.
def solution(my_string):
answer = 0
list = my_string.split()
plus_nums = [int(list[0])]
minus_nums = []
for i in range(1, len(list)):
if list[i] == "+":
plus_nums.append(int(list[i+1]))
elif list[i] == "-":
minus_nums.append(int(list[i+1]))
answer = sum(plus_nums)
if len(minus_nums) > 0:
for i in minus_nums:
answer -= i
return answer
더하기와 빼기만 있으므로 순서를 바꾸어도 계산 결과가 같은 것을 이용했다.
다른 사람 풀이
def solution(my_string):
return sum(int(i) for i in my_string.replace(' - ', ' + -').split(' + '))
-를 + -로 바꿔서 음수로 만들어 싹 더해버리기..
def solution(my_string):
my_string = list(my_string.split())
answer = 0
operator = ''
for m in my_string:
if m == '+' or m == '-':
operator = m
else:
if operator == '+':
answer += int(m)
elif operator == '-':
answer -= int(m)
elif operator == '':
answer = int(m)
return answer
범용성 생각하면 이게 더 맞는거 같기도
728x90
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스] OX퀴즈 (0) | 2024.01.06 |
---|---|
[프로그래머스] 숫자 찾기 (0) | 2024.01.06 |
[프로그래머스] 한 번만 등장한 문자 (0) | 2024.01.04 |
[프로그래머스] 인덱스 바꾸기 (0) | 2024.01.04 |
[프로래머스]영어가 싫어요 (1) | 2024.01.04 |