[백준 7450] Bin Packing (C++)

2022. 6. 9. 20:54· CodingTest/Baekjoon

문제가 영어라 내가 이해한? 영어대로 해석해보겠다.

 

문제

  1. 가방이 있고 물건이 있다.
  2. 가방에는 최대 2개의 물건을 담을 수있다.
  3. 가방의 용량을 넘어서는 물건을 담을 수 없다.

입력

  1. 첫 번째 입력은 물건의 개수
  2. 두 번째 입력은 가방의 용량

문제 해석

  1. 물건의 무게가 큰 순서대로 정렬함.
  2. 가방의 개수가 최소화되는 방법은 가장 큰 거를 우선 담고, 그 빈자리에 담을 수 있는 가장 작은 무게를 담는다. 
  3. 만약 담았다면 담았던 물건은 제외시켜준다.

코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int big(int i, int j)
{
return i > j;
}
int N, W, totweight = 0;
vector<int> profit;
vector<int>include;
int Count = 0;
int bag = 0;
int main()
{
cin >> N;
cin >> W;
profit.resize(N, 0);
include.resize(N, 0);
for (int i = 0; i < N; i++)
{
cin >> profit[i];
}
sort(profit.begin(), profit.end(), big); //물건의 무게가 큰 순서대로 정렬함.
int begin = 0;
int end = N - 1;
for (int i = 0; i < N; i++)
{
for (int j = N-1; j >=0; j--)
{
if (profit[i] + profit[j]<=W) //가장 큰 무게와 가장 작은 무게를 담을 수 있다면 넣어줌.
{
bag++;
N = N - 1; //담았다면 가장 끝에 꺼를 제외시켜야하기때문에 값을 하나 빼줌.
break;
}
else if (profit[i] <= W) //만약 가장 큰 무게와 가장 작은 무게를 담을 수 없지만, 가장 큰 것만 담을수 있다면? 담아줌.
{
bag++;
break;
}
}
}
cout << bag;
}

 

느낀 점 

한번 핀트를 잘못 잡으니까 문제를 해결하는데 굉장히 오래 걸렸다.

경우의 수를 잘못 계산했었다. 

하나씩 들어가는 경우의 수도 계산했어야 했는데 그걸 빼서 굉장히 애를 먹었다.

 

저작자표시 (새창열림)

'CodingTest > Baekjoon' 카테고리의 다른 글

[백준 16563] 어려운 소인수분해 구하기 (C++)  (0) 2022.06.10
[백준 1929]-소수구하기(C++)  (0) 2022.06.09
[C++] 백준 1978 - 소수 찾기  (0) 2022.06.01
[C++] 백준 1037 - 약수  (0) 2022.06.01
[백준 C++] 1003 (피보나치 함수)  (0) 2022.05.03
'CodingTest/Baekjoon' 카테고리의 다른 글
  • [백준 16563] 어려운 소인수분해 구하기 (C++)
  • [백준 1929]-소수구하기(C++)
  • [C++] 백준 1978 - 소수 찾기
  • [C++] 백준 1037 - 약수
재한
재한
안녕하세요 💻
짜이한안녕하세요 💻
재한
짜이한
전체
오늘
어제
  • 분류 전체보기 (504)
    • Skils (118)
      • Android (52)
      • C++ (5)
      • Kotlin (36)
      • Algorithm (24)
      • Server (1)
    • CodingTest (228)
      • Programmers (45)
      • Baekjoon (183)
    • Experience (8)
      • 후기(코딩테스트,프로그램,프로젝트) (8)
    • Computer Science (70)
      • Design Pattern (2)
      • OOP (2)
      • Computer Architecture (14)
      • OS (2)
      • Software Engineering (3)
      • DataBase (8)
      • Network (39)
    • 학교 (75)
      • R프로그래밍 (26)
      • 회계와 사회생활 (17)
      • 컴퓨터학개론 (20)
      • it기술경영개론 (12)

블로그 메뉴

  • 홈
  • 태그
  • 카테고리
  • 글쓰기
  • 설정

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
재한
[백준 7450] Bin Packing (C++)
상단으로

티스토리툴바

개인정보

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

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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