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

 

2217번: 로프

N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을

www.acmicpc.net

-문제를 읽어보고 예시를 한번 그려보았더니 로프가 버틸 수 있는 중량의 

 

-입력 값이 어떻게 주어지냐에 따라서 들 수 있는 최대 무게가 많이 달라질 수 있는 문제였습니다.

 

-몇개의 로프를 선택 하던 간에 그 로프들로 들 수 있는 중량의 최대 무게는

 

- (로프 중 가장적은 무게를 들수 있는 중량) * (로프의 개수) 입니다.

 

-로프  n개 선택 한다고 치면 큰 무게를 들 수 있는 로프를 두고 적은 무게를 들 수 있는 로프를 선택할 이유 가 없으므로

 

-큰것들 부터 n개를 선택 해 가면서 반복문을 1회 돌면서 그 값들을 비교하면 되는 문제 였습니다.

 

- 내림차순으로 정렬 후 앞에서 부터 로프의 개수를 하나씩 늘려가며 최대값만 저장 후 출력하였습니다.

 

<필기>

 

<코드>

 

 

'알고리즘 문제풀이 > 그리디' 카테고리의 다른 글

백준 2875  (0) 2020.02.11
백준 10610  (0) 2020.02.10
백준 1931  (0) 2020.02.05
백준 11047  (0) 2020.02.05
백준 11399  (0) 2020.02.05

+ Recent posts