문제출처 : https://www.acmicpc.net/problem/14888
1. 문제요약
- N개의 수로 이루어진 수열 A1, A2, ... , An이 주어진다.
- 수 사이에 끼워 넣을 연산자가 N-1개 주어진다.
- 수의 순서는 고정되어 있고 숫자 사이에 연산자를 넣어서 만들 수 있는 최대값과 최솟값을 출력
- 수식은 +, -, *, / 순이다.
- 2 <= N <= 11
2. 접근방법
- 조합!
- 10! / (덧셈 연산자 갯수)! * (뺄셈 연산자 갯수)! * (곱셈 연산자 갯수)! * (나눗셈 연산자 갯수)!
3. 시간복잡도
- 10! / (덧셈 연산자 갯수)! * (뺄셈 연산자 갯수)! * (곱셈 연산자 갯수)! * (나눗셈 연산자 갯수)!
4. 회고
- 문제에서 음수 / 양수 인 경우 음수를 양수로 바꾸고 나눗셈 연산을 한 뒤에 다시 음수를 붙이라고 해서
진짜 그렇게 했는데.. 굳이 그렇게 안해도 그냥 그런식으로 연산이 되는거였네...
- 종만북에 조합관련된 비슷한 문제가 있었던거 같은데... 찾아봐야지
- 처음에 long long 로 max값을 -2e31 / min값을 2e31-1 로 잡았는데 왜 값이 제대로 안들어가지??
- 아.. 음... 엄청 멍청했군.... 2e31 은 2뒤에 0이 31개 있다는 뜻인데 왜 2^31으로 생각했지 ㅋㅋ
소스코드
[출처 : BOJ, 문제에 대한 모든 권리는 BOJ(acmicpc.net, startlink)에 있음]
'먹고살려면 > boj' 카테고리의 다른 글
BOJ 14503 로봇 청소기 (0) | 2018.02.12 |
---|---|
BOJ 14889 스타트와 링크 (0) | 2018.02.12 |
BOJ 2146 다리 만들기 (0) | 2018.02.11 |
BOJ 2178 미로 탐색 (0) | 2018.02.11 |
BOJ 7576 토마토 (0) | 2018.02.08 |