mossolb   4년 전

처음에는 세 수의 단순비교, 그리고 그 다음에는 버블 정렬(그게 버블정렬인지는 학교에서 자료구조 수업을 듣고 알았습니다만...)을 써서 해결했습니다.

그런데 수업을 들어보니 버블정렬의 시간복잡도가 어마어마하더라구요...그래서 합병 정렬(Merge Sort)로 해볼까도 생각했는데 수가 3개밖에 안되서 이게 좋은 방법인지를 모르겠습니다. 이 문제의 경우 합병 정렬을 쓰는게 좋은 방법일까요, 아니면 단순한 삽질이라고 생각하시나요??

jaehoo1   4년 전

제 개인적인 의견으로는 문제를 풀 때 그 문제에 맞는 알고리즘을 선택해 푼다고 생각하기 때문에,

이 문제에 한해서는 제한이 굉장히 작기 때문에 어떤 방법으로 풀더라도 상관이 없다고 봅니다.

그저 if문을 써도 되고, quick/merge/bubble 등등 sort알고리즘 아무거나 써도 0ms로 풀리고, 

시간이 오래 걸렸다 하더라도 TLE가 아니고 문제가 풀린다면 정해는 아니더라도

그게 곧 답이라고 생각합니다.

물론 일반적인 상황에서는, bubble sort는 TLE가 나오겠죠.

2751 - 수 정렬하기 2

15688 - 수 정렬하기 5

jaehoo1   4년 전

2751 - 수 정렬하기 2 (왜인진 몰라도 윗글에서 링크가 잘못걸렸군요)

2750 - 수 정렬하기 (이 문제도 제한이 작기 때문에 bubble sort로 풀립니다)

gojib2002   4년 전

시간복잡도는 입력 값이 클 때 어떤게 효율적인지 따지는건데, 사실 수가 3개면 버블이 합병보다 빠릅니다.


mossolb   4년 전

도움이 많이 되었습니다. 좋은 답변들 달아주셔서 감사합니다!

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