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를 사용하여 숫자로 바로바로 바꾸어주며 더했다.
훨씬 효율적인 식.
'Programmers > programmers' 카테고리의 다른 글
[프로그래머스]함수 두개 사용하기. (0) | 2023.12.10 |
---|---|
[프로그래머스]배열만들기 6 파이썬 // return a or b (0) | 2023.12.10 |
[프로그래머스]문제를 잘 읽자 (0) | 2023.12.08 |
[프로그래머스]프로그래머스 영어가 싫어요 // (0) | 2023.12.08 |
[프로그래머스] 프로그래머스 소인수분해 // while, set, sort정렬 (2) | 2023.12.06 |