본문 바로가기
Algorithm/Programmers

[2020 카카오 인턴십] 수식 최대화

by BAYABA 2020. 7. 25.

 

문제: https://programmers.co.kr/learn/courses/30/lessons/67257


시뮬레이션 문제입니다.

 

1. 연산자들간의 우선순위 정하기: n!

 

2. 1번 우선순위에 따라 계산하기

 

 

수식을 컨트롤할 자료구조를 정하는 게 중요한 문제였네요.

 

저는 deque를 써서 해결했습니다.

 

맨 처음에는 (수식어 파싱문제 = 스택)이라 생각하고 스택만 쓰다가 망했습니다.

 

스택을 통해 expression을 파싱하면 수식 순서가 반대로 되는데,

 

이 때문에 앞에서부터 계산해야 할 것을 뒤에서부터 계산하게 됩니다.

 

이게 문제가 되는 이유는 뺄셈의 경우 숫자의 위치가 바뀌게 되면 다른 값이 나오기 때문입니다.

 

e.g.

(520 - 60000) - 100 = -59,580

(100 - 60000) - 520 = -60,420


코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/kakao2020_02.cc