Coding Problem

[BOJ 2785] 체인

Yepchani 2025. 3. 24. 20:00
반응형

문제

체인

https://www.acmicpc.net/problem/2785

 

 

풀이

설명

필요한 고리의 최소 개수를 구하는 문제입니다.

 

방법은 다음과 같습니다.

  1. 체인을 길이를 기준으로 내림차순으로 정렬합니다.
  2. 가장 오른쪽 체인(가장 길이가 작은 체인)에서 고리를 하나씩 풀어 가장 왼쪽의 체인 두 개를 연결합니다.
  3. 모든 체인이 연결될 때까지 2번을 반복합니다.

 

예시 코드

function solution() {
  const N = Number(input());
  const chains = input()
    .split(" ")
    .map(Number)
    .sort((a, b) => b - a);
  let left = 0,
    right = N - 1;
  let answer = 0;

  while (left < right) {
    left++;
    answer++;
    chains[right]--;
    if (chains[right] === 0) right--;
  }

  return answer;
}

'Coding Problem' 카테고리의 다른 글

[BOJ 1038] 감소하는 수  (0) 2025.04.03
[BOJ 14468] 소가 길을 건너간 이유 2  (0) 2025.04.01
[BOJ 2653] 수 이어가기  (0) 2025.03.23
[BOJ 1913] 달팽이  (0) 2025.03.22
[BOJ 2622] 삼각형만들기  (0) 2025.03.21