https://www.acmicpc.net/problem/2217
각자 들 수 있는 중량이 다른 로프 n개 중 여러개(모두 다 사용할 필요 없음)를 사용하여 최대 중량 값을 찾아내는 문제이다.
다만 k 만큼의 중량을 가진 물체를 로프 n개를 사용하여 들어올린다면, 각각의 로프에는 k/n만큼의 중량이 부여된다.
첫번째 시도에서는 모든 로프를 사용해야하는 줄 알고,
"므야 그냥 최소 값에 개수 곱하면 되는 거 아님??"
으로 접근했다가 문제를 다시 읽어보고 머쓱해졌다.
두번째 시도에서는 모든 로프를 내림차순으로 정렬한 후,
가장 큰 중량을 버틸 수 있는 로프보다, 더 큰 중량을 버틸 수 있는 순간이 오면 바로 출력하는 것으로 접근했다.
읽어보면 알겠지만 가장 큰 중량을 버틸 수 있는 로프도 함께 고려해야한다는 걸 간과하여 실패했다.
세번째 시도에서는 모든 로프를 오름차순으로 정렬한 후,
최소 중량을 하나씩 올려가며 최대 중량을 계산하면서, 최대 중량이 작아지는 순간에 바로 출력하였다.
이 경우, 최대 중량이 작아졌다가 다시 커질 수 있는 상황이 있을 수 있기 때문에 실패했다.
(thanks to GPT)
마지막 시도에서 이를 보안하여 문제를 해결하였다.
최종 코드는 다음과 같다.
CodingTestPrac/백준/Silver/2217. 로프 at main · csy-59/CodingTestPrac
This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - csy-59/CodingTestPrac
github.com
'코딩 테스트 준비(백준, 프로그래머스)' 카테고리의 다른 글
| [알고리즘 공부] Union-Find 알고리즘 (0) | 2025.10.01 |
|---|---|
| [백준] 1789 - 수들의 합 (0) | 2025.09.06 |
| [백준] 1026-보물 (0) | 2025.09.04 |
| [백준] 1541 - 잃어버린 괄호 (0) | 2025.09.03 |
| [백준] 1931 - 회의실 배정 (0) | 2025.09.02 |