반응형
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/120907
문제
덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz
가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.
내 답안
def solution(quiz):
return ["O" if eval(i.split("=")[0]) == int(i.split("=")[1]) else "X" for i in quiz]
남의 풀이
def solution(quiz):
answer = []
for q in quiz:
p, a = q.split("=")
if eval(p) == int(a):
answer.append("O")
else:
answer.append("X")
return answer
결론 및 느낀점
문자열로 표현된 수식을 처리할 때마다 eval() 함수를 사용하게 되는데, 이 방법이 너무 편해서 자주 사용하게 된다. eval()
은 문자열을 코드로 실행시키기 때문에 보안 상의 위험이 있고, 실무에서는 사용을 피해야 한다고 많이 들었다. 그래도 테스트나 알고리즘 문제를 풀 때는 굉장히 유용하다. 남의 풀이처럼 하나씩 분리해서 비교하는 방식이 실제로는 더 올바른 접근일 수 이라고 생각한다. 하지만 역시 eval()의 유혹을 뿌리치기는 어렵네...
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / PCCP 기출문제 9번 / Python] 지폐 접기 (6) | 2025.06.03 |
---|---|
[프로그래머스 / Python] 안전지대 (0) | 2025.05.31 |
[프로그래머스 / Python] 등수 매기기 (2) | 2025.05.31 |
[프로그래머스 / Python] 영어가 싫어요 (0) | 2025.05.31 |
[프로그래머스 / Python] 가까운 수 (0) | 2025.05.31 |