https://school.programmers.co.kr/learn/courses/30/lessons/120907
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💡문제풀이 (접근방식)
1. 'X [연산자] Y= Z ' 형태인 문자열을 하나씩 꺼낸다.
2. '=' 을 기준으로 분리한다.
3. X, [연산자] , Y를 공백기준으로 분리하고 , X,Y,Z를 int 형으로 변환해준다.
4. 만일 연산자가 '+(-)' 라면 x+y(x-y) 를 계산하여 결과를 반환한다.
5. 만일 계산결과가 Z와 동일하다면 정답에 'O' , 아닐경우 'X' 를 추가해준다.
def solution(quiz):
answer = []
for i in quiz :
#'='를 기준으로 분리
xy , z = i.split('=')[0] , i.split('=')[1]
#계산하기위해 x와 y 분리하기
x , oper , y = xy.split()[0] , xy.split()[1] , xy.split()[2]
#int형으로 변환
x , y, z = int(x) , int(y) , int(z)
#만일 연산자에 따른 계산
if oper == '+' :
result = x+y
else :
result = x-y
#만일 계산결과와 z 가 동일하다면 O, 아니라면 X
if result == z :
answer.append("O")
else :
answer.append("X")
return answer
🤔 새롭게 알게된 함수 Eval()
이전에 문제 접근 방식에서는 문자열 표현식을 계산하지 못해서 공백을 기준으로 분리해서 진행했다. Eval() 함수를 사용하면 문자열 표현식을 연산가능하게 해주는 기능을 한다. 하지만 해당 함수의 사용은 다음과 같은 보안 문제로 사용하지 않는걸 추천한다고 한다.
https://bluese05.tistory.com/64
python eval() 함수 - 사용을 조심해야 하는 이유
python eval() 함수 python 의 built-in 함수 중 하나인 eval 함수는 매우 강력하면서도 사용을 자제 하도록 권고하는 양날의 검과 같은 기능이다. 먼저 python docs 의 정의를 보자. eval(expression, globals=None, loc
bluese05.tistory.com
def solution(quiz):
answer = []
for i in quiz :
#'='를 기준으로 분리
xy , z = i.split('=')[0] , i.split('=')[1]
xy , z = eval(xy) , int(z)
if xy == z :
answer.append("O")
else :
answer.append("X")
return answer
'Algorithm' 카테고리의 다른 글
[Algorithm] 백준 - ReMorse (0) | 2024.05.06 |
---|---|
[Algorithm] DFS / BFS (1) | 2024.05.03 |
[Algorithm] 그리디 알고리즘 (0) | 2024.04.30 |
[Algorithm] 배열과 리스트 (0) | 2024.04.16 |
[Algorithm] 시간복잡도 (0) | 2024.04.15 |