문제를 보고서 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
Posted by slender ankles
,