문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/1843
코딩테스트 연습 - 사칙연산
["5", "-", "3", "+", "1", "+", "2", "-", "4"] 3
programmers.co.kr
분할 정복과 DP 알고리즘을 조합한 문제였습니다.
알고리즘은 아래와 같습니다.
1. A 구간과 B 구간 사이의 연산자가 +라면 A 구간 내 연산 결과 중 최댓값과 B 구간 내 연산 결과 중 최댓값을 더해야 최댓값을 구할 수 있습니다.
1.1 A 구간과 B 구간 사이의 연산자가 -라면 A 구간 내 연산 결과 중 최대값과 B 구간 내 연산 결과 중 최솟값을 더해야 최댓값을 구할 수 있습니다.
2. 따라서, dp를 이용해 구간 내 연산 결과 최대, 최소값을 구해줍니다.
3. 2번에서 구한 결과를 토대로 구간 내 최대값을 반환해줍니다.
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers] 예산 (0) | 2021.10.01 |
---|---|
[Programmers] 소수 만들기 (0) | 2021.10.01 |
[Programmers] 게임 맵 최단거리 (0) | 2021.09.30 |
[Programmers] 폰켓몬 (0) | 2021.09.30 |
[Programmers] 단어 퍼즐 (0) | 2021.09.30 |