minjae200   5년 전

박스랑 크레인을 크기순으로 정렬하고

가장 큰 크레인과 가장 큰 박스를 비교했을때 박스가 더 크면 -1을 출력해주었습니다.

(옮기지 못하므로)

그리고 각각 크레인마다 들수있는 박스 갯수를 카운트했습니다.

예를들어.

3개의 크레인 크기를 각각 6 8 9라하고

5개의 박스 크기가 각각 2 3 5 7 9라 했을때

lefting[0]에는 6까지 들수 있는 크레인이 2,3,5를 들수 있으므로 3
lefting[1]에는 8까지 들수 있는 크레인이 7을 들수 있으므로 1
lefting[2]에는 9까지 들수 있는 크레인이 9를 들수 있으므로 1

(단, 중복제외 ...그니가 lefting[1]에는 lefting[0]상자가 포함되지 않음)

이과정을 거치면 lefting에는 3 1 1 값이 저장되게 됩니다.

여기서 while문을 돌면서 몇분을 거쳐 옮길수있는지 계산합니다.

lefing[i]의 값이 0이 아니면 그냥 상자 1개처리 (lefting[i]--)

0이라면 (else문) 현재 크레인보다 작은 크레인에서 상자하나 가져와 동시처리가능하므로 빼주는식으로 계산했습니다.

여러 테스트케이스를 만들어서 해본결과 제생각에는 맞는거같은데 틀린 반례를 찾아주실분 계시나요

minjae200   5년 전

아 해결됬습니다. lefting[i]가 0일때 (else문) lefting하나 감소시켜줬으면 break를 해줫어야 햇는데 착각했네요

나중에 문제푸실때 조심하세요 ㅠㅠㅠㅠ

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