목록heap (1)
BASIC의 개발 노트
주어진 카드 묶음들을 비교하는데, 이 비교 횟수가 최소가 되는 값이 무엇인지 구하는 문제이다. 문제 조건에 따르면 비교할 때는 A 묶음과 B 묶음이 있을 때 합쳐서 하나로 만드는데 A+B번 비교를 해야한다. 문제 예시를 활용하면 10, 20, 40이 있을 때 10과 20을 합치면 30번의 비교가 필요하며 이렇게 될 경우 30과 40만이 남게 되고 30과 40을 다시 합치면 70번의 비교가 필요해서 총 100번의 비교를 하게 된다. 만약 순서를 바꿔서 10과 40을 먼저 합치고 비교할 경우 100번 보다 많은 횟수가 나오게 된다. 가장 최소 횟수로 비교하기 위해서는 정렬해서 작은 수끼리 비교하고 이 값을 누적해 나가야 한다. 누적해 나가는 값을 최솟값으로 만드는 것이 최소한의 비교 횟수가 되는데 다시 이 ..
Algorithm/BaekJoon
2022. 6. 28. 16:55