inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 클럽 스터디 3기] CS - 2주차 발자국

채채
1

학습 내용


운영체제

휘발성 메모리: 전원 공급이 없으면 데이터가 사라짐
비휘발성 메모리: 전원 공급이 없어도 데이터가 사라지지 않음

 

자료구조 & 알고리즘

function factorial(number) {
  if (number <= 1) return 1;
  return number * factorial(number - 1)
}

console.log(factorial(4))  // 4 * 3 * 2 * 1
function sumArray(arr){
  if (arr.length == 1) return arr[0];
  return sumArray(arr.slice(0, -1)) + arr[arr.length - 1]
}

const arr = [1,2,3,4,5]
const sum = sumArray(arr);
console.log(sum)

규칙
1. 한 번에 하나의 원반을 움직일 수 있다.
2. 가장 위에 있는 원반만 옮길 수 있다
3. 아래에 작은 원반이 올 수 있다.

function hanoi(count, start, target, tmp) {
  if (count === 0) return;
  hanoi(count - 1, start, tmp, target)
  hanoi(count - 1, tmp, target, start)
}

hanoi(3, 'A', 'C', 'B')

1. count - 1개의 작은 원반을 start → tmp로 옮긴다. (임시: target)
2. 가장 큰 원반을 start → target으로 옮긴다.
3. count - 1개의 작은 원반을 tmp → target으로 옮긴다 (임시: start)
4. 이전 과정을 반복하며 모든 원반을 start에서 target으로 옮긴다.
5. 모든 원반을 옮겨 count가 0이 되면 재귀를 종료한다.

function bubbleSort(arr) {
  for (let i = 0; i < arr.length - 1; i++) {
    for (let j = 0; j < arr.length - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        let temp = arr[j]
    	arr[j] = arr[j + 1]
    	arr[j + 1] = temp
      }
    }
  }
}

const arr = [4, 2, 3, 1]

// ===== 정렬 전 =====
console.log(arr)

// ==== 정렬 후 =====
console.log(bubbleSort(arr)
function selectionSort(arr) {
  for (let i = 0; i < arr.length - 1; i++) {
    let minValueIndex = i
	  
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[j] < arr[minValueIndex]) {
        minValueIndex = j
      }
    }
		
    let temp = arr[i]
    arr[i] = arr[minValueIndex]
    arr[minValueIndex] = temp;
  }
}

 

 

회고


워밍업클럽 운영체제 알고리즘 자료구조

답변 0