문제 링크 (https://www.acmicpc.net/problem/14888)
next_permutation을 사용하여 해결한 문제!
N개의 수로 이루어진 수열을 num 벡터에 차례대로 넣어준다.
연산자의 개수만큼 연산자에 해당하는 숫자를 oper 벡터에 넣어주었다. 이 때, 연산자에 해당하는 숫자는 (1: 덧셈 / 2: 뺄셈 / 3: 곱셈 / 4: 나눗셈)이라고 지정했다.
예를 들어 연산자 입력이 2 1 1 1 이라면 => oper 벡터에는 1 1 2 3 4 가 들어가는 것!
oper 벡터를 next_permutation 의 인자로 사용하여 순열을 구해준다. do문 안에서는 num 벡터의 크기만큼 반복문을 돌리며 각 연산자에 맞는 연산을 해준다. (1: 덧셈 / 2: 뺄셈 / 3: 곱셈 / 4: 나눗셈)
각 순열마다 최대/최소값을 비교하고 마지막에 값을 출력해준다.
[소스코드]
더보기
2021-08-06
Silver 1
알고리즘 분류
- 브루트포스 알고리즘
- 백트래킹
'ALGORITHM > BOJ' 카테고리의 다른 글
[BOJ] 10026번 적록색약 (C++) (0) | 2021.10.14 |
---|---|
[BOJ] 14501번 퇴사 (C++) (0) | 2021.10.09 |
[BOJ] 14502번 연구소 (C++) (0) | 2021.10.08 |
[BOJ] 1713번 후보 추천하기 (C++) (0) | 2021.09.03 |
[BOJ] 3452번 고스택 (C++) (0) | 2021.09.03 |