11728번 - 배열 합치기
문제를 푸는데 시간 오버가 나는경우가 많아서 매우 슬픈데요 ㅠㅠ
지금도 11728 번같은경우에도 퀵소트를 이용해서 배열을 정리헀는데도 불구하고 시간 오버가 뜨네요
printf 뭐 이런걸 사용안하고 cin cout 이걸로 해서 그런가 시간오버가 되는데
두 배열을 각각 받고
두 배열을 비교하면서 작은 순서대로 배열을 합치는게 빠르려나요?
아니면 제 코드에 불필요한 부분이 있는지 여쭈어 보고싶습니다 ㅠㅠ 가르침 부탁드려용
네 두 배열을 같이 보면서 작은 값부터 출력하는 게 빠릅니다.
배열에 넣지 않고 바로바로 출력하는 게 빠르고요.
저는 scanf printf 사용을 추천드립니다.
참고로 algorithm에 구현되어 있는 std::sort를 사용하면
제한시간 내에 풀 수 있더라고요!
저 문제의 가장 좋은 힌트는 "정렬되어있는 두 배열 A, B가 주어진다."인 거 같습니다 :D
댓글 달아주신 모든분들 정말 감사드립니다!!
아 정렬되어있는게 주어지는군요..
그냥 지나가다가 글 보게 되었는데, 저는 보통 이런문제 heap을 구현해서 풉니다.
priority_queue<int> maxheap; (queue 헤더 필요)
prioirty_queue<int, vector<int>, greater<int> > minheap; (queue, vector, functional 헤더 필요)
이렇게 선언만하고 push(), top(), pop()만 이용하면 간단데스~!
시간은 좀 걸리지만 그냥 정렬과 관련된건 아무생각없이 해결하기에 좋습니다 ㅎㅎ
댓글을 작성하려면 로그인해야 합니다.
hun222y 8년 전
문제를 푸는데 시간 오버가 나는경우가 많아서 매우 슬픈데요 ㅠㅠ
지금도 11728 번같은경우에도 퀵소트를 이용해서 배열을 정리헀는데도 불구하고 시간 오버가 뜨네요
printf 뭐 이런걸 사용안하고 cin cout 이걸로 해서 그런가 시간오버가 되는데
두 배열을 각각 받고
두 배열을 비교하면서 작은 순서대로 배열을 합치는게 빠르려나요?
아니면 제 코드에 불필요한 부분이 있는지 여쭈어 보고싶습니다 ㅠㅠ 가르침 부탁드려용