계속지나가기
코딩스뮤
계속지나가기
전체 방문자
오늘
어제
  • 코딩스뮤:)
    • Algorithm
      • 백준 문제풀이
      • 프로그래머스 문제풀이
      • 알고리즘 이론
      • 자료구조
      • SW Expert Academy
    • 인공지능(AI)
      • LLMs
      • 자연어처리(NLP)
      • 컴퓨터비전(CV)
      • 딥러닝(DL)
      • 머신러닝(ML)
      • 인공지능기초수학
      • 선형대수학
    • 컴퓨터 세팅
    • Computer Science
      • 유닉스프로그래밍
      • 프로그래밍언어론
      • 디자인패턴
      • 클린코드
      • SW 영어
      • 리눅스
      • 논리회로
    • Server
      • Docker

블로그 메뉴

  • 홈
  • Who Am I(CV)
  • 태그

공지사항

인기 글

태그

  • DIP
  • 손실함수
  • NLP
  • 패턴인식
  • f1-score
  • 머신러닝
  • 비지도학습
  • 경사하강법
  • 비용함수
  • ML
  • ComputerVision
  • 기계학습
  • 최대유량
  • 네트워크플로우
  • 선형회귀
  • machinelearning
  • 파이썬 클린코드
  • 에지검출
  • 결정경계
  • 언어모델
  • 컴퓨터비전
  • 디지털이미지처리
  • 지도학습
  • 알고리즘
  • DigitalImageProcessing
  • networkflow
  • MaximumFlow
  • 군집화
  • SIFT
  • LM

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
계속지나가기

코딩스뮤

[Python] 수식 최대화
Algorithm/프로그래머스 문제풀이

[Python] 수식 최대화

2020. 11. 11. 21:42
반응형

programmers.co.kr/learn/courses/30/lessons/67257

 

코딩테스트 연습 - 수식 최대화

IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과

programmers.co.kr

파이썬 코드

# 우선순위가 낮은 기호를 기준으로 split()
def calc(priority, n, expression):
    if n == 2: # 마지막 인덱스일 경우 기호 상관없이 eval()에서 연산 수행하면 됨
        return str(eval(expression))
    if priority[n] == '*':
        res = eval('*'.join([calc(priority, n+1, e) for e in expression.split('*')]))
    if priority[n] == '+':
        res = eval('+'.join([calc(priority, n+1, e) for e in expression.split('+')]))
    if priority[n] == '-':
        res = eval('-'.join([calc(priority, n+1, e) for e in expression.split('-')]))
    return str(res)

def solution(expression):
    answer = 0
    priorities = [ # 우선순위가 낮은 순으로 [0] < [1] < [2] 리스트 저장
        ('*', '-', '+'),
        ('*', '+', '-'),
        ('+', '*', '-'),
        ('+', '-', '*'),
        ('-', '*', '+'),
        ('-', '+', '*')
    ]
    for priority in priorities:
        res = int(calc(priority, 0, expression))
        answer = max(answer, abs(res))
    
    return answer

 

반응형

'Algorithm > 프로그래머스 문제풀이' 카테고리의 다른 글

[Python] 보석쇼핑  (0) 2020.12.02
[C++] 키패드 누르기  (0) 2020.11.04
[C++] 점프와 순간이동  (0) 2020.10.07
    'Algorithm/프로그래머스 문제풀이' 카테고리의 다른 글
    • [Python] 보석쇼핑
    • [C++] 키패드 누르기
    • [C++] 점프와 순간이동
    계속지나가기
    계속지나가기
    NLP Engineer

    티스토리툴바