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 |
