4-26 TIL

이세영·2024년 4월 26일
0
post-custom-banner

연결 리스트

연결 리스트는 데이터 항목을 저장하는 데 사용되는 선형 데이터 구조 중 하나입니다. 각 노드는 데이터와 다음 노드를 가리키는 참조(또는 링크)로 구성됩니다.

class Node {
    constructor(data) {
        this.data = data;
        this.next = null;
    }
}

class LinkedList {
    constructor() {
        this.head = null;
    }
    
    // 노드 추가
    addNode(data) {
        let newNode = new Node(data);
        if (this.head === null) {
            this.head = newNode;
        } else {
            let current = this.head;
            while (current.next !== null) {
                current = current.next;
            }
            current.next = newNode;
        }
    }
}

원하는 위치에 노드 추가하기

class LinkedList {
   
    addNodeAt(data, position) {
        let newNode = new Node(data);
        if (position === 0) {
            newNode.next = this.head;
            this.head = newNode;
        } else {
            let prev = null;
            let current = this.head;
            let index = 0;
            
            while (index < position && current !== null) {
                prev = current;
                current = current.next;
                index++;
            }
            
            newNode.next = current;
            prev.next = newNode;
        }
    }
}

정수 배열의 평균값을 리턴하는 함수

배열의 평균값을 계산하는 것은 기본적인 수학적 연산이며, JavaScript에서는 reduce 메소드를 사용하여 배열의 모든 항목을 합한 다음, 배열의 길이로 나누어 평균을 구할 수 있습니다.

function calculateAverage(arr) {
    const sum = arr.reduce((acc, curr) => acc + curr, 0);
    return sum / arr.length;
}

문자열로 구성된 리스트를 n번째 글자를 기준으로 오름차순으로 정렬

특정 문자 위치를 기준으로 문자열 배열을 정렬하는 것은 배열 조작 및 문자열 처리에 대한 이해를 높일 수 있는 좋은 연습입니다.

function sortStringsByNthChar(strings, n) {
    return strings.sort((a, b) => a.charCodeAt(n) - b.charCodeAt(n));
}

시간 복잡도

시간 복잡도는 알고리즘의 실행 시간이 입력 크기에 따라 어떻게 변하는지를 설명하는 개념입니다. 이는 알고리즘의 효율성을 평가하는 데 중요한 도구입니다. 오늘 배운 메소드들의 시간 복잡도를 이해하고 분석하는 것은 알고리즘을 최적화하는 데 있어 필수적입니다.

죄송합니다, 이어서 내용을 정리해드리겠습니다.

정수 배열의 평균값 반환 함수

정수 배열의 평균값을 계산하는 함수는 데이터 처리와 분석에서 기본적인 작업입니다. JavaScript에서는 배열의 reduce 메소드를 이용하여 배열의 모든 항목을 합산한 다음, 배열의 길이로 나누어 평균값을 계산할 수 있습니다. 이 과정은 프로그래밍 기본기를 다지는 데 도움이 됩니다.

배운 내용:

  • 배열의 reduce 메소드 활용 방법
  • 평균 계산 로직 구현

코드 예시:

function calculateAverage(arr) {
    const sum = arr.reduce((acc, cur) => acc + cur, 0);
    return sum / arr.length;
}

문자열 리스트를 n번째 글자를 기준으로 오름차순으로 정렬

특정 위치의 문자를 기준으로 문자열 배열을 정렬하는 것은 배열 조작 및 문자열 처리 이해도를 높이는 좋은 연습입니다. JavaScript의 sort 메소드를 사용하여 구현할 수 있으며, 이 과정에서 문자열 비교 방법을 배울 수 있습니다.

배운 내용:

  • 문자열 배열 정렬 기법
  • localeCompare 메소드를 이용한 문자열 비교

코드 예시:

function sortStringsByNthChar(strings, n) {
    return strings.sort((a, b) => {
        if (a[n] === b[n]) {
            return a.localeCompare(b);
        }
        return a[n].localeCompare(b[n]);
    });
}

시간 복잡도

알고리즘의 실행 시간이 입력 크기에 따라 어떻게 변화하는지 설명하는 개념인 시간 복잡도는 알고리즘을 최적화하는 데 필수적입니다. 오늘 배운 메소드들의 시간 복잡도를 이해하고 분석하는 것은 효율적인 알고리즘을 설계하는 데 도움이 됩니다.

배운 내용:

  • 시간 복잡도의 중요성 및 기본 개념
  • 알고리즘 분석의 기본
profile
블로그 관리 하루에 한번씩 도전!
post-custom-banner

0개의 댓글