자료구조알고리즘/문제풀이
[프로그래머스][Lv.0] OX퀴즈
포시
2022. 12. 17. 03:27
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120907
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 풀이
def solution(quiz):
answer = []
for i in range(len(quiz)):
a = quiz[i].split(" ")
if a[1]=='+' and int(a[0])+int(a[2])==int(a[4]):
answer.append('O')
elif a[1]=='-' and int(a[0])-int(a[2])==int(a[4]):
answer.append('O')
else:
answer.append('X')
return answer
마침 신찬수 교수님의 스택을 이용한 계산기 구현하는 강의를 보다가 문제를 풀게 됐는데
그걸 보고 할까 하다가 문제를 보니
a ? b = c 와 같이 정해져있는 수식에다 기호는 '+', '-' 두 개 뿐이어서 바로 풀어도 풀리겠다 싶었다.
split을 통해 각 숫자와 기호를 배열에 넣어줬고 위치는 정해져 있으니
'+'일 때랑 '-'일 때를 구분해 계산해서 맞으면 'O' 틀리면 'X'를 반환하면 되는 간단한 문제였다.
시간복잡도
시간복잡도는 O(N)
다른 풀이
다른 풀이들은 내 방식과 비슷하거나 다르면 eval() 함수를 사용해 텍스트 형태의 파라미터 값을 변형해 사용했는데
eval()을 쓰는 방법은 편법을 쓰는 기분이기도 하고 현업에서도 보안상의 위험 때문에
사용을 자제하는 함수기도 해서 패스하기로 했다.
728x90