1.10진수를 x진수로 바꾸고 싶을 때 숫자값을 변수에 할당한 후 num.toString(x)를 이용한다.
let num = 100
num.toString(2)  => 1100100
num.toString(3)  => 10201
num.toString(5)  => 400
num.toString(7)  => 202
num.toString(16) => 64

2.x진수를 10진수로 바꾸고 싶을 때는 숫자값을 변수에 할당한 후 parseInt(num,x)를 이용한다.
let num = 100000
parseInt(num,2)  => 32
parseInt(num,3)  => 243
parseInt(num,5)  => 3125
parseInt(num,7)  => 16807
parseInt(num,16) => 1048576

3.x진수를 y진수로 바꾸고 싶은 경우 x진수를 10진수로 변경 후 y진수로 바꿔주면 된다.
parseInt(num,x).toString(y)

4.선택 정렬은 0~length-1까지의 index를 조사해 최저값을 찾은 후 해당 인덱스에 넣고 맨 앞부분을 제외하고 다시 조사하는 방식을 반복하는 형태로 진행된다.
function sort(arr) {
  const change = (arr, idx1, idx2) =>                //index를 받아 위치교환
    ([arr[idx1], arr[idx2]] = [arr[idx2], arr[idx1]]);
  for (let i = 0; i < arr.length-1; i++) {            //index 0부터 마지막 전까지를 시작값으로 지정
    let lowest = i;
    for(let j = i + 1; j < arr.length; j++) {       //시작값+1부터 마지막까지 비교
      if (arr[lowest] > arr[j]) {
        lowest = j;
      }
    }
    if(i !== lowest) change(arr, i, lowest);       //최저값이 없으면 찾은 값을 교환
  }
  return arr;
}

5.for문 내부에 조건이 해당될 경우에만 작동을 시킬 경우 i < length와 함꼐 and 연산자(&&)를 통해 조건을 함께 넣어줄 수 있다.
 
6.삽입 정렬은 index 1부터 시작해서 값을 올려나가며 바로 앞의 값들과 비교를 통해 해당될 경우 한칸씩 땡겨온 후 맞는 위치에 삽입해준다. 방식의 차이는 있지만 선택정렬과 큰 차이는 느끼지 못하겠다. 
게다가 j를 var로 선언하지 않고 let으로 선언하면 이용할 수 없는 단점이 있어 var를 부득이하게 사용하거나 내부에 다른 변수를 선언한 후 할당해줘야 하는 불편함이 있다.
function sort(arr){
let cur; //현재값 선언
    for(let i = 1; i < arr.length; i++){ //1부터 끝까지 탐색
        cur = arr[i]; //현재값 저장
        for(var j = i - 1; j >= 0 && arr[j] > cur; j--) { //j값부터 역순으로 비교
            arr[j+1] = arr[j]    //조건해당시 한칸씩 뒤로
        }
        arr[j+1] = cur;    //맞는 위치로 cur 배치
    }
    return arr;
}

 

이해할 때는 쉽게 봤지만 막상 정리하려고 하면 생각보다 쉽지는 않은 것 같다.

강의작성시기가 조금 예전인건지 var를 자주 사용하는데 let으로 바꿔서 사용도 되지 않아 당환스러운 부분도 있엇고

반대로 var를 저렇게 쓸 수 있다는 부분도 재미있었다.

'회고' 카테고리의 다른 글

[사용자 친화 웹] 웹 표준 & 접근성-3  (0) 2022.07.12
[사용자 친화 웹] 웹 표준 & 접근성-2  (0) 2022.07.11
학습(알고리즘)  (0) 2022.07.09
[사용자 친화 웹] 웹 표준 & 접근성  (0) 2022.07.08
[React] 상태 관리-3  (0) 2022.07.07

+ Recent posts