알고리즘
[프로그래머스, 파이썬] OX퀴즈
hminor
2024. 2. 23. 10:35
반응형
풀이
- 첫 번째 풀이의 경우엔 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]