본문 바로가기
Programmers/programmers

[프로그래머스]프로그래머스 문자열 계산하기(파이썬)//replace, split

by 딸기뚜왈기 2023. 12. 8.
def solution(my_string):
    my_string = my_string.split(' ')
    for idx, i in enumerate(my_string):
        if idx % 2 == 0:
            my_string[idx] = int(i)
    
    start = my_string[0]
    for idx, i in enumerate(my_string):
        if idx % 2 == 1:
            if i == '+':
                start += my_string[idx+1]
            else:
                start -= my_string[idx+1]
            
        
    return start

 

def solution(my_string):
    return sum(int(i) for i in my_string.replace(' - ', ' + -').split(' + '))

 

쭉 따라가면,

 

test 케이스 : "1 + 3"일 경우 

 

my_string.replace(' - ', ' + -')  → "1 + -3"

.split(' + ')) → ['1','-3']

 

def solution(my_string):
    s = my_string.split()
    answer = int(s[0])
    for i in range(1,len(s),2):
        if s[i]=='+':
            answer+=int(s[i+1])
        else:
            answer-=int(s[i+1])
    return answer

 

첫번째 푼 것 처럼 

for문을 두번 쓸 필요가 없이,

for문에 len을 사용하여 index out of range 문제를 피하고,

answer 에 int를 사용하여 숫자로 바로바로 바꾸어주며 더했다.

훨씬 효율적인 식.