문제
https://school.programmers.co.kr/learn/courses/30/lessons/120902
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
파이썬에서는 문자열로 수식이 주어진다면 이 수식을 계산한 값을 반환해주는 eva함수가 존재한다. 이를 이용하면 문제를 쉽게 해결 할 수 있다.
def solution(my_string):
return eval(my_string)
라고 쉽게 넘기고 싶었으나 eval() 함수 사용에 대한 보안 문제에 대해 한번 짚고 넘어가고자 한다. eval() 함수는 문자열로 표현되는 표현식(expression)을 실행하여 결과값을 받아오는 함수이다. 즉 표현식에 파이썬 스크립트가 실행되는 명령어를 집어 넣게 되면 그 또한 실행이 가능하다는 소리이다. 이로 인해 eval() 함수는 서버에 배포되어 여러 사용자들이 함께 사용하는 경우에는 사용을 권하지 않는다.
이러한 문제로 인해서 eval() 함수에 기대지 않고 해당 문제를 다시 접근하여 풀어본다면 아래와 같이 문제를 해결 할 수 있다.
def solution(my_string):
return sum(int(i) for i in my_string.replace(' - ', ' + -').split(' + '))
'Algorithm > Programmers' 카테고리의 다른 글
프로그래머스 LV0 등차수열의 특정한 항만 더하기 (0) | 2023.08.26 |
---|---|
프로그래머스 LV0 qr code (0) | 2023.08.26 |
프로그래머스 LV0 한 번만 등장한 문자 (0) | 2023.08.26 |
프로그래머스 LV0 날짜 비교하기 (0) | 2023.08.26 |
프로그래머스 LV0 암호해독 (0) | 2023.08.26 |