jokj624   3년 전

안녕하세요.

deque을 사용해서 풀었는데요. 

먼저 아이스크림 양이 큰 순서대로 정렬 해 준다음에 deque 배열에 집어 넣습니다.

이때 같은 양의 아이스크림들을 같은 덱에 넣어줬습니다. 

즉, 0 번째 덱 -> 가장 양이 많은 아이스크림들 양+인덱스 

1 번째 덱 -> 그 다음 양이 많은 아이스크림들 양+인덱스 이런 식 입니다.

이후, K번동안 0번째 덱부터 보는데 뒤집혔는지 아닌지는 ck 상태 변수로 체크합니다. 뒤집히지 않으면 현재 덱의 front 부터 빼고, 뒤집힌 상태면 back부터 뺍니다. 

만약 현재 deque이 비어있다면 다음 덱으로 넘어가서 봅니다.

10%에서 틀렸다고 나오는데 제가 문제를 잘못 이해했을까요.. 아니면 접근이 아예 틀린건지 알려주시면 감사하겠습니다.

park780172   3년 전

첨부하신 코드의 24번 째 줄 sort를 stable_sort로 바꾸시면 맞습니다.

지금 cmp가 단순히 a만을 가지고 오름차순 하는데 

이때, b(증가하는 번호)는 순서대로 유지하면서 정렬되는 것이 아니라 순서가 바뀔 수도 있습니다.

그래서, 현재의 코드에서는 stable_sort(같은 값일 경우 순서를 보장하는 정렬)로  정렬해야 합니다.

jokj624   3년 전

와 정말 감사드려요 그 부분은 아예 생각도 못했네요!!

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