새소식

반응형
코딩 테스트

[백준] 2217 로프

  • -
728x90
반응형

문제

  • 로프는 그 굵기나 길이에 따라 들 수 있는 물체의 중량이 서로 다르다. 
    하지만 k개의 로프를 병렬로 연결하면 중량이 w인 물체를 들어올릴 때 각각의 로프에 모두 고르게 w/k만큼의 중량이 걸린다.
  • N개의 로프에 대한 정보가 주어졌을 때, 로프들로 들어올릴 수 있는 물체의 최대 중량을 구하기
  • 모든 로프를 사용할 필요는 없다.
  • 1 <= N <= 100,000

 

풀이

  • 로프를 병렬로 연결하면 w/k 만큼의 중량을 들 수 있기 때문에,
    k개 로프를 사용한다면 가장 적은 중량을 들 수 있는 로프를 기준으로 w의 중량이 정해진다.
  • => 로프가 들 수 있는 중량의 순서로 정렬하고, 해당 로프 * 로프 개수를 모두 구한다.

 

N = int(input())
ropes = [int(input()) for _ in range(N)]
ropes.sort()	# 로프 정렬하기
answers = []	# 정답 배열

for rope in ropes :
    answers.append(rope * N)
    N -= 1

print(sorted(answers)[-1])

 

References

  • 백준 그리디
반응형

'코딩 테스트' 카테고리의 다른 글

[백준] 2735 윤년  (0) 2023.08.28
[백준] 11725 트리의 부모 찾기  (0) 2023.08.28
[백준] 2225 합분해  (0) 2023.08.23
[백준] 21611 마법사 상어와 블리자드  (0) 2023.08.23
[프로그래머스] 상담원 인원  (0) 2023.08.23
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.