Programmers -코딩테스트 연습>코딩 기초 트레이닝>조건 문자열

2024. 2. 5. 12:45·코딩 테스트 & 문제 해결/코딩 테스트 연습

문제 상황

 

처음 문제를 보고 어떻게 해야할 지는 한눈에 보였지만

if절 중첩에.. 쓸데없이 코드가 너무 길어질 것 같았다

def solution(ineq, eq, n, m):
    answer = 0
    
    if ineq=='<' and eq=='=':
        if n<=m:
            answer = 1
    elif ineq=='>' and eq=='=':
        if n>=m:
            answer=1
    elif ineq=='>' and eq=='!':
        if n>m:
            answer = 1
    else:
        if n<m:
            answer=1
            
    return answer

그래도 일단 써봄

 

마음에 안 들었지만 줄이는 걸 모르겠어서 일단 제출 후..! 다른 사람 풀이 참고

 

 

풀이 1)

def solution(ineq, eq, n, m):
    answer = 0
    if n > m and ineq ==">":
        answer = 1
    elif n < m and ineq == "<":
        answer = 1
    elif n == m and eq == "=":
        answer = 1

    return answer

'같다' 라는 상황이 중복됐으므로 상황을 풀어놓은 것

문제에서 중복된 상황을 하나로 빼버리는 것은 기억할 아이디어라고 생각한다

 

 

풀이 2)

def solution(ineq, eq, n, m):
    return int(eval(str(n)+ineq+eq.replace('!', '')+str(m)))


ineq: 부등식을 나타내는 문자열. 예를 들면 '<', '>' 등이 가능
eq: 등식을 나타내는 문자열입니다. 여기에는 '='이나 '!='와 같은 등호 관련 표현이 올 수 있다.
n: 부등식/등식에 사용될 첫 번째 숫자
m: 부등식/등식에 사용될 두 번째 숫자

 

코드에서 eq.replace('!', '') 부분은 등호 관련 표현에서 '!'를 제거하는 역할. '!='와 같은 형태의 등호를 처리하기 위해 사용되었다.

 

 

+eval함수 설명

eval 함수는 주어진 문자열을 파이썬 표현식으로 간주하고 해당 표현식을 실행하여 결과를 반환하는 내장 함수.

즉, 문자열로 표현된 파이썬 코드를 실행하는 역할을 한다.

result = eval("2 + 2")
print(result)  # 출력 결과: 4


위의 예시에서 eval은 문자열 "2 + 2"를 파이썬 표현식으로 해석하고 해당 표현식을 계산하여 결과값인 4를 반환한다.

그러나 eval 함수는 보안 문제와 코드의 예측 불가능성으로 인해 일반적으로 권장되지 않는다고 한다.

실행되는 코드가 동적으로 생성되기에 디버깅이 어려울 수 있다.






'코딩 테스트 & 문제 해결 > 코딩 테스트 연습' 카테고리의 다른 글

[BOJ] [python] 14888: 연산자 끼워넣기  (1) 2025.01.03
[준랩] [python] 1082: 특정 대문자를 소문자로 바꾸기  (3) 2024.12.24
[BOJ] [python] 2941: 크로아티아 알파벳  (0) 2024.12.23
Programmers -코딩테스트 연습>코딩 기초 트레이닝>수 조작하기 1  (1) 2024.02.10
programmers -코딩테스트 연습>코딩 기초 트레이닝  (1) 2024.01.27
'코딩 테스트 & 문제 해결/코딩 테스트 연습' 카테고리의 다른 글
  • [준랩] [python] 1082: 특정 대문자를 소문자로 바꾸기
  • [BOJ] [python] 2941: 크로아티아 알파벳
  • Programmers -코딩테스트 연습>코딩 기초 트레이닝>수 조작하기 1
  • programmers -코딩테스트 연습>코딩 기초 트레이닝
JYUN_
JYUN_
예비 개발자 성장기록
  • JYUN_
    데브 스토리
    JYUN_
  • 전체
    오늘
    어제
    • 분류 전체보기 (89)
      • AWS & 클라우드 컴퓨팅 (1)
        • AWS (2)
      • AI & ML (17)
        • 딥러닝 (3)
        • 인공지능 기초 (2)
        • 자연어 처리 (3)
        • 컴퓨터 비전 (8)
      • CS 지식 (9)
        • 알고리즘 (1)
        • 자료구조 (4)
        • 지식확장 (1)
        • 컴퓨터 네트워크 (3)
      • 백엔드 (22)
        • Node.js (12)
        • Spring (9)
      • 웹 프론트엔드 (21)
        • HTML (3)
        • React (7)
        • 바닐라 JavaSctipt (11)
      • 코딩 테스트 & 문제 해결 (11)
        • 코딩 테스트 연습 (10)
        • 실전 문제 풀이 (1)
      • 트러블 슈팅 (1)
      • 기타 (4)
        • 개인 지식 관리 (1)
        • 외부 활동 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
JYUN_
Programmers -코딩테스트 연습>코딩 기초 트레이닝>조건 문자열
상단으로

티스토리툴바