알고리즘

[프로그래머스, 파이썬] 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]