728x90
프로그래머스 PYTHON > 코딩테스트 연습 > 코딩 기초 트레이닝 > 조건 문자열
문제설명
내 코드
def solution(ineq, eq, n, m):
answer = 0
if n<=m and ineq=="<" and eq=="=":
answer = 1
elif n>=m and ineq==">" and eq=="=":
answer = 1
elif n>m and ineq==">" and eq=="!":
answer = 1
elif n<m and ineq=="<" and eq=="!":
answer = 1
else:
answer = 0
return answer
풀면서도 단순히 if문으로 처리하는 문제는 아닐 것이라고 생각했지만,, 별다른 방법이 생각나지 않아 if/elif문 처리를 통해 문제를 풀었다. 다른 사람들의 풀이가 굉장히 궁금했던 문제였다.
다른 사람 풀이
def solution(ineq, eq, n, m):
return int(eval(str(n)+ineq+eq.replace('!', '')+str(m)))
먼저, 결과는 0과 1로 return 하면 되기에 int()를 사용하였다.
특히 eval() 내장함수를 이용해 문자열을 받아 실행할 수 있도록 하였는데,
일단 매개변수를 모두 문자열처리하고,
eq를 replace 함수를 통해 대체한게 인상 깊었다.
어차피 ineq가 >고, eq가 !면eq가! 면 단순히 >로 바뀌기에,
결과적으로 eq가! 일 때는 아예 필요 없는 연산자가 된다!
def solution(ineq, eq, n, m):
return int(eval(f"{n}{ineq}{eq.replace('!','')}{m}"))
f-string 문법을 사용하는걸 더 추천한다고 하니, 자주 이용해봐야겠다.
728x90
'코딩테스트 > PYTHON' 카테고리의 다른 글
[프로그래머스][PYTHON] Lv. 0 수열과 구간 쿼리 4 (0) | 2023.12.27 |
---|---|
[프로그래머스][PYTHON] Lv. 0 수열과 구간 쿼리 2 (0) | 2023.12.27 |
[프로그래머스][PYTHON] Lv. 0 수열과 구간 쿼리 3 (0) | 2023.12.27 |
[프로그래머스][PYTHON] Lv. 0 수 조작하기 2 (1) | 2023.12.27 |
[프로그래머스][PYTHON] Lv. 0 주사위 게임 2 (1) | 2023.12.22 |