문제를 보고서 sort의 방법중에 최소시간이 걸리는 방법을 찾으라는 것인가?라고 생각했다.
퀵소트를 구현하는 것인가 했지만,
2 3 5 4 1
=> 1 3 5 4 2
=> 1 3 2 4 5
=> 1 2 3 4 5
위와 예제를 보면 내가 생각했던 방법은 아니다... ???
** 시그를 통해 알게 된거 swap을 최소로 하는 것은 선택정렬 방법이다. **
우선은 선택정렬을 하는 방법으로 구현해 보고 안 되면 퀵소트라던지 힙소트라던지 구현해야 되겠다고 생각했다.
내가 세운 방법은 이 것이다.
[]은 확정된 값들을 말한다.
2 3 5 4 1 중에 최소값을 첫 번째 배열에 넣는다.
=> 1 3 5 4 2
[1] 3 5 4 2 중에 최소값을 두 번째 배열에 넣는다.
=> [1] 2 5 4 3
[1] [2] 5 4 3 중에 최소값을 세번 째 배열에 넣는다.
=> [1] [2] [3] 4 5
.....
swap되는 카운트를 세는 것이 문제이기 때문에
간단한 조건을 하나 걸어주었다.
최소값이 자기 자신이면 swap을 하지 않는다는 조건이다.
이렇게 하면 답이 나온다.
'알고리즘문제풀이' 카테고리의 다른 글
2458_키순서 (0) | 2015.03.25 |
---|---|
3/26알고리즈_시그 (0) | 2015.03.24 |
2477_참외밭 (0) | 2015.03.07 |
10158_개미 (0) | 2015.03.06 |
1149_RGB거리 (0) | 2015.03.01 |