백준(알고리즘)

백준 2217 로프

2021. 1. 9. 21:06
반응형

www.acmicpc.net/problem/2217

 

2217번: 로프

N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하

www.acmicpc.net

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
	int ropecnt;
	cin >> ropecnt;

	vector<int>arr(ropecnt+1,0);

	int tmp;
	for (int i = 1; i <= ropecnt; i++)
	{
		cin>>arr[i];
	}
	sort(arr.begin(), arr.end());
	int maxx = -1;

	for (int i =1;i<=ropecnt;i++)
	{
		if (i == 1)
		{
			maxx = arr[ropecnt];
		}
		else
		{
			maxx = max(maxx,arr[ropecnt - i+1] * i);
		}
	}

	cout << maxx;

}

그리디 알고리즘 문제

병렬로 연결하여 (무게/로프의수) 를 통하여 더 무거운 짐을 들 수 있지만, 결국 저 공식의 최대무게는

고른 로프중 (가장 가볍게 드는 로프의 무게)*로프의 수

로 귀결된다.

 

따라서 sort를 통하여 오름차순으로 정렬을 한번 한 뒤에, 무거운 로프부터 한개일때, ... max함수를 통해 값을 비교하였다

단순히 뒤에 두개가 효율적이다고 보기에는 같은 무게의 로프 n개일때는 모든 로프를 사용하는게 더 이득이기 때문이다.

반응형

'백준(알고리즘)' 카테고리의 다른 글

백준 14889 스타트와 링크 (비트마스크)  (0) 2021.01.17
백준 11723 집합  (0) 2021.01.16
백준 11404 플로이드  (0) 2021.01.09
백준 18353 병사 배치하기  (0) 2021.01.03
백준 1764 듣보잡  (0) 2021.01.02
'백준(알고리즘)' 카테고리의 다른 글
  • 백준 14889 스타트와 링크 (비트마스크)
  • 백준 11723 집합
  • 백준 11404 플로이드
  • 백준 18353 병사 배치하기
빡상이
빡상이
게임 및 개발 관련 일지 작성하는 블로그
빡상이
끄적끄적
빡상이
반응형
  • 분류 전체보기
    • FrontEnd
      • Vue3
      • Nuxt
    • BackEnd
      • 로스트아크 Work
    • 백준(알고리즘)
    • Unreal Engine
    • 아크라시아 세카이
    • C++
    • 웹 개발 꿀팁
    • C#
    • Linux
      • 명령어
    • DB
      • SQL
      • Tibero
전체
오늘
어제

최근 댓글

최근 글

hELLO · Designed By 정상우.
빡상이
백준 2217 로프
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.