CodeKata_Week 5_Day 1

Jisun LeeΒ·2021λ…„ 8μ›” 22일
0
post-thumbnail

πŸ“ Today Question

Selection Sort(선택정렬): 선택정렬은 μ •λ ¬λ˜μ§€ μ•Šμ€ 데이터 쀑 κ°€μž₯ μž‘μ€ 데이터λ₯Ό μ„ νƒν•΄μ„œ 맨 μ•žμ—μ„œλΆ€ν„° μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•΄ λ‚˜κ°€λŠ” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. 선택 μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜μ—¬ 문제λ₯Ό ν’€μ–΄λ³΄μ„Έμš”.

✏️ Problem Statement
numsλΌλŠ” μ •λ ¬λ˜μ§€ μ•Šμ€ 숫자 배열을 μ£Όλ©΄, μ˜€λ¦„μ°¨μˆœ(1,2,3..10) 으둜 μ •λ ¬λœ 배열을 returnν•΄μ£Όμ„Έμš”.


πŸ”Ž 선택 μ •λ ¬μ΄λž€ λ¬΄μ—‡μΌκΉŒ?

좜처: https://velog.io/@roro/μžλ£Œκ΅¬μ‘°μ•Œκ³ λ¦¬μ¦˜-선택정렬

βœ” Check Point 1
: 선택 정렬은 첫 번째 자료λ₯Ό 두 번째 μžλ£ŒλΆ€ν„° λ§ˆμ§€λ§‰ μžλ£ŒκΉŒμ§€ μ°¨λ‘€λŒ€λ‘œ λΉ„κ΅ν•˜μ—¬ κ°€μž₯ μž‘μ€ 값을 μ°Ύμ•„ 첫 λ²ˆμ§Έμ— 놓고, 두 번째 자료λ₯Ό μ„Έ 번째 μžλ£ŒλΆ€ν„° λ§ˆμ§€λ§‰ μžλ£ŒκΉŒμ§€μ™€ μ°¨λ‘€λŒ€λ‘œ λΉ„κ΅ν•˜μ—¬ κ·Έ 쀑 κ°€μž₯ μž‘μ€ 값을 μ°Ύμ•„ 두 번째 μœ„μΉ˜μ— λ†“λŠ” 과정을 λ°˜λ³΅ν•˜λ©° 정렬을 μˆ˜ν–‰ν•œλ‹€.

βœ” Check Point 2
: 1νšŒμ „μ„ μˆ˜ν–‰ν•˜κ³  λ‚˜λ©΄ κ°€μž₯ μž‘μ€ κ°’μ˜ μžλ£Œκ°€ 맨 μ•žμ— 였게 λ˜λ―€λ‘œ κ·Έ λ‹€μŒ νšŒμ „μ—μ„œλŠ” 두 번째 자료λ₯Ό 가지고 λΉ„κ΅ν•œλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ nνšŒμ „μ—μ„œλŠ” n번째 자료λ₯Ό μ •λ ¬ν•œλ‹€.

βœ” Check Point 3
: μž₯점-자료 이동 νšŸμˆ˜κ°€ 미리 κ²°μ •λœλ‹€.
: 단점-같은 값이 μžˆλŠ” 경우 μƒλŒ€μ μΈ μœ„μΉ˜κ°€ 변경될 수 있기 λ•Œλ¬Έμ— μ•ˆμ •μ„±μ΄ λ§Œμ‘±λ˜μ§€ μ•ŠλŠ”λ‹€.

좜처: https://gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html

πŸ”Ž 문제λ₯Ό μ–΄λ–»κ²Œ μ ‘κ·Όν•΄μ•Όν• κΉŒ?

πŸƒ

const selectionSort = (nums) => {
  for (let i = 0; i<nums.length; i ++) {
    let min = i;
    for (let j = i+1; j<nums.length; j++){
      if (nums[min]>nums[j]){
        min = j;
      }
    }
    if (min!==i){
      let change = nums[min];
      nums[min] = nums [i];
      nums[i] = change;
    }
  }
  return nums;
}

πŸ† Run Test!



πŸ”Ž μ•Œκ²Œλœ 것을 μ •λ¦¬ν•΄λ³΄μž!

βœ” μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ„ κ³΅λΆ€ν•΄μ•Όν•˜λŠ” μ΄μœ λŠ” 효율적인 탐색을 μœ„ν•΄μ„œμ΄λ‹€. νƒμƒ‰ν•΄μ•Όν•˜λŠ” 데이터가 μ •λ ¬λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄ 쑰회, μ‚½μž…, μ‚­μ œ λ“±μ˜ μžλ£Œμ— λŒ€ν•œ μ ‘κ·Ό μš©μ΄μ„±μ΄ 떨어진닀. μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ€ λ¬΄μˆ˜ν•˜λ©° μ΄λŠ” μ‹œκ°„ λ³΅μž‘λ„, 곡간 λ³΅μž‘λ„λ₯Ό ν•΄κ²°ν•˜λŠ”λ° λͺ©ν‘œλ₯Ό λ‘”λ‹€.

0개의 λŒ“κΈ€