풀이
- 첫 번째 풀이의 경우엔 quiz로 받은 배열의 값을
- replace() 메서드로 =의 경우 빈 문자로 변경 후
- split() 메서드로 없애서 숫자와 연산자만 남게 한 뒤 해결했으며
- 두 번째 풀이의 경우엔 eval() 메서드를 활용하여
- replace() 메서드로 =의 경우 == 으로 변경 후
- 해당 문자열을 그대로 실행 후 맞는지 아닌지 확인하여 해결
- 다만 eval() 의 경우 보안에 아주 취약하여
- 알고리즘 테스트나 간단 확인용으로 사용하면 좋을 듯 하다.
- 이유는 eval() 로 받아온 값이 악성 웹 사이트 방문 또는
- 내부 프로그램을 건드릴 수 있기 때문.
첫 번째 풀이
def solution(quiz):
result = []
for i in quiz:
li = i.replace("=","").split()
if li[1] == "+" and int(li[0])+int(li[2]) == int(li[-1]): result.append("O")
elif li[1] == "-" and int(li[0])-int(li[2]) == int(li[-1]): result.append("O")
else: result.append("X")
return result
두 번째 풀이
def solution(quiz): return ["O" if eval(i.replace("=","==")) else "X" for i in quiz]
'알고리즘' 카테고리의 다른 글
[프로그래머스, 파이썬] 다음에 올 숫자 (0) | 2024.02.26 |
---|---|
[프로그래머스, 파이썬] 모의고사 (0) | 2024.02.23 |
[프로그래머스, 파이썬] 폰켓몬 (0) | 2024.02.23 |
[프로그래머스, 파이썬] 연속된 수의 합 (0) | 2024.02.23 |
[프로그래머스, 파이썬] 분수의 덧셈 (0) | 2024.02.22 |