-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Silver IV] Title: 로프, Time: 108 ms, Memory: 35364 KB -BaekjoonHub
- Loading branch information
Showing
2 changed files
with
53 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# [Silver IV] 로프 - 2217 | ||
|
||
[문제 링크](https://www.acmicpc.net/problem/2217) | ||
|
||
### 성능 요약 | ||
|
||
메모리: 35364 KB, 시간: 108 ms | ||
|
||
### 분류 | ||
|
||
그리디 알고리즘, 수학, 정렬 | ||
|
||
### 제출 일자 | ||
|
||
2024년 5월 10일 14:14:44 | ||
|
||
### 문제 설명 | ||
|
||
<p>N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다.</p> | ||
|
||
<p>하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다.</p> | ||
|
||
<p>각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다.</p> | ||
|
||
### 입력 | ||
|
||
<p>첫째 줄에 정수 N이 주어진다. 다음 N개의 줄에는 각 로프가 버틸 수 있는 최대 중량이 주어진다. 이 값은 10,000을 넘지 않는 자연수이다.</p> | ||
|
||
### 출력 | ||
|
||
<p>첫째 줄에 답을 출력한다.</p> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
import sys | ||
|
||
|
||
def main(): | ||
n = int(sys.stdin.readline().strip()) | ||
|
||
lopes = [] | ||
for _ in range(n): | ||
lopes.append(int(sys.stdin.readline().strip())) | ||
|
||
lopes.sort() | ||
|
||
max_weight = 0 | ||
for i in range(n): | ||
max_weight = max(max_weight, (n - i) * lopes[i]) | ||
|
||
print(max_weight) | ||
|
||
|
||
if __name__ == "__main__": | ||
main() |