본문 바로가기

Programming/데일리 알고리즘

[HackerRank] Minimum Swaps 2 (javascript)

선택 정렬 방식으로 풀었다. 

배열의 0번부터 순회하며, 제일 작은 위치를 찾아 나의 위치와 교환한다. 

 

function minimumSwaps(arr) {
  let result = 0;

  const array = arr.slice();
  let i = 0;

  for (let cur of array) {
    let j = i + 1;
    let min = cur;
    let pointer = i;
    while (j < array.length) {
      if (min > array[j]) {
        min = array[j];
        pointer = j;
      }
      j++;
    }
    if (min !== cur) result++;

    array[i] = min;
    array[pointer] = cur;
    i += 1;
  }
  return result;
}