johyesong8686   3년 전

1.우선 보석의 가치가 높은 거를 우선 순위로 배열 했습니다.

2.for 문을 통해서 이분탐색 o(logn)을 사용하여 무게가 동일 하거나 큰 것을 찾아서

ans 에 값을 더해준 뒤 erase 하여  사용한 가방을 삭제하는 방식으로 구현 했습니다.


1. 시간 초과 원인은 어디서 나오는건가요 ? 이분 탐색인가요 ?

2.이 문제를 해결하기 위해서 이 논리에서 추가해야할 부분이 있나요 ? 아니면 아예 논리를 바꿔서 풀어야할까요 ?

johyesong8686   3년 전

bag.erase() 의 시간 복잡도가 o(n)을 지니고 있기때문입니다.

for문에 들어갈경우 시간 초과가 나겠죵

kcan1416   3년 전

erase가 문제입니다

이대로 푸시려면 vector대신 multiset로 바꿔서 하심 되고
우선순위큐로도 할 수 있는데 대신 푸는 방식이 바뀝니다

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