kdjames0930   4년 전

박스의 무게와 크레인의 감당 가능 무게 모두 내림차순으로 정렬한 후, 

2중 for을 통해서 크레인이 무거운 것부터 확인해 박스의 무게가 크레인이 감당 가능한 무게면 vector 에서 없애는 방식으로 진행하고

while 문이 돌아간 횟수를 세서 출력했습니다.

답은 틀렸다고 나오고 많은 예시들을 입력해봤는데 도저히 어디가 틀렸는지 모르겠네요..

dinky24   4년 전

고쳐보려고 이상한데서 한참 해맸네요.. ㅋㅋ

먼저 cmp 함수랑 관련해서 내림차순으로 하고 싶으실 때는 보통 내가 원하는 방향을 참으로 설계하셔야 해요.

짜주신 코드하고 제가 짜는 코드하고 내용 자체가 다르기도 하구요.

cmp 코드는 아래와 같이 수정해주세요.

1
2
3
4
5
bool cmp(int a, int b)
{
if(a > b) return true;
else return false;
}
cs

그리고 또 이 수정해주실 부분있는데요!

아래에서 박스를 하나씩 훑어볼 때 벡터에서 원소를 지우게 되면 사이즈도 줄어들어요!

하지만 위에서 사이즈를 m에 저장했으니 계속 사이즈는 줄어들지 않은채로 고정이겠죠?

1
2
3
4
5
6
for(int j=0; j<v.size; j++)
{
if(cr[i]>=v[j]){
v.erase(v.begin()+j);
break;
}
cs

이렇게 수정해주시면 좋을 것 같아요! erase 함수는 의미는 똑같으니까 간단하게 수정한거에요!

열심히 하세요! 화이팅!

댓글을 작성하려면 로그인해야 합니다.