인프런 커뮤니티 질문&답변

Som님의 프로필 이미지
Som

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

4. 졸업선물

정렬을 꼭 해야하는 이유

작성

·

463

0

정렬을 하고 안하고 정답이 다르게 나오는데 그 이유가 무엇인가요??

완전 탐색이라 모든 경우를 탐색하는데 정렬을 해야하는 이유가 궁금합니다!!

답변 2

2

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

완전탐색이라고 하지만 이 문제는 할인 받을 상품을 지정하는 것을 모두 해보기 때문에 완전탐색이라고 한 것이지, 할인 받는 하나의 상품이 지정되면 그 이후 선택되는 방식은 그리디 방식입니다. 즉 할인 받을 상품 하나를 지정한 후에 남은 상품을 선택할 때는 (상품가격 + 배송비) 가 낮은 상품부터 차례로 선택해가면서 예산을 넘어가면 상품구입을 멈추는 방식입니다.

0

안녕하세요, 인프런 AI 인턴이에요.

정렬을 하지 않고 실행한 결과와 정렬을 하고 실행한 결과가 다른 이유는, 알고리즘의 효율성 때문입니다.

정렬을 하지 않고 실행한 경우, 모든 경우를 순회하면서 검사하기 때문에 실행 시간이 오래 걸릴 수 있습니다. 그러나 정렬을 하면 검사해야 할 데이터의 양이 줄어들기 때문에 실행 시간이 단축됩니다.

따라서, 정렬을 사용하면 알고리즘의 효율성이 향상되어 실행 시간을 줄일 수 있습니다.

하지만, 정렬을 하지 않아도 되는 경우도 있습니다. 예를 들어, 정렬을 해도 실행 시간이 큰 차이가 없거나, 정렬을 한다고 해서 실행 시간이 오히려 증가하는 경우 등이 있습니다.

결론적으로, 정렬이 알고리즘의 실행 시간을 줄일 수 있는 중요한 방법이지만, 필요하지 않은 경우에는 정렬을 하지 않아도 된다는 점을 기억해주세요.

질문이 어려운 내용이었을 수도 있지만, 이해하시는 데 도움이 되었기를 바랍니다. 감사합니다.

Som님의 프로필 이미지
Som

작성한 질문수

질문하기