BOJ 2785. 체인
1. 문제설명
N
개의 체인이 주어진다.- 다음
N
개의 줄에는 각 체인의 개수를 나타내는 양의 정수가 주어진다. - 하나의 긴 체인으로 모두 묶기 위해 열고 닫아야할 고리 수를 찾아라.
2. 알고리즘 설계
- 최대한 적은 고리를 이용해 하나로 만들어야 한다.
- 체인의 개수에 따라 정렬
- 가장 개수가 적은 고리를 하나 풀어서 뒤에 두개를 이어주고 더한다.
- 만약 가장 개수가 적은 고리가 0개가 되면 그 다음 고리를 사용한다.
3. 로직
vector
의front()
,back()
을 사용- 각각 가장 적은 체인의 개수, 가장 많은 체인의 개수
-
예시
5 4 3 5 7 9 3 4 5 7 9 // 정렬 2 4 5 16 // 가장 적은 고리 하나 제거하고, 뒤에 두개의 값 잇기 1 4 21 // 상기 주석과 동일 25 // 하나가 되었으므로 종료