Baekjoon_1092 배

최효준·2023년 1월 8일
0

알고리즘 문제풀이

목록 보기
22/61

문제

풀이

처음에 풀이 할때는 check 변수를 두고 일일이 크레인 리스트를 돌려가며 확인했다. 결과는 오답을 받았는데 이는 무작정 작은 것들 먼저 크레인과 비교하다 보니 큰 것과 작은 것들을 섞어 넣었을 때 더 최적의 결과를 내는 경우를 무시하는 결과를 가져왔기 때문이었다.
그렇기에 박스와 크레인의 정렬을 오름차순이 아닌 내림차순으로 다시 정렬하였고 큰 것부터 싣는 방식으로 바꾸어서 문제를 풀어냈다.

해답 소스

n = int(input())
crane = list(map(int,input().split()))   
m = int(input())
box = list(map(int,input().split()))                 

crane.sort(reverse=True)
box.sort(reverse=True)
time = 0

check_crane = 0
if max(box) > max(crane):
    print(-1)
else:
    while box:
        if not box:
            break
        for i in crane:
            for j in box:
                if i >= j:
                    box.remove(j)
                    break
    time += 1
    print(time)
profile
Not to be Number One, but to be Only One

0개의 댓글