목록Algorithm & Data Structure (10)
Frontend 개발자 - hyo.loui
🎯목적 : Algorithm 문제풀이 과정을 기록합니다. 나만의 해결방법을 공유합니다. 1️⃣ 문제 링크와 문제 2️⃣ 풀이 전 계획과 생각 (수도 코드) 3️⃣ 풀이 (코드 블록 첨부) 4️⃣ 풀이하면서 막혔던 점과 고민 5️⃣ 풀이 후 알게된 개념과 소감 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴..
❤️🔥TIL : Today I Learned 트리, 그래프 비선형 구조인 트리와 그래프에 대해서 비교하고 설명합니다. 2023.04.06 - [Algorithm] - 선형 구조와 비선형 구조 선형 구조와 비선형 구조 ❤️🔥TIL : Today I Learned 선형 구조와 비선형 구조 선형 구조와 비선형 구조를 이해하고, 둘의 예시를 설명합니다. 선형 구조와 비선형 구조 1. 선형 구조(Linear) - 앞서 다뤄본 리스트와 연결리 hyoloui.tistory.com 트리 란? Tree 특징 - 나무를 거꾸로 뒤집어 놓은 듯한 구조이다. - 그래프의 여러 구조 중 무방향 그래프의 한 구조로 하나의 뿌리로부터 가지가 사방으로 뻗은 형태. - 하나의 데이터 뒤에 여러 개의 데이터가 존재할 수 있는 비선형..
❤️🔥TIL : Today I Learned 선형 구조와 비선형 구조 선형 구조와 비선형 구조를 이해하고, 둘의 예시를 설명합니다. 선형 구조와 비선형 구조 1. 선형 구조(Linear) - 앞서 다뤄본 리스트와 연결리스트, 스택과 큐 는 선형구조로 자료를 구성하는 원소들을 하나씩 나열시킨 형태이다. - 자료들간의 앞, 뒤 관계가 1:1의 관계로 배열과 리스트가 대표적이며 스택과 큐도 이에 해당된다. 2023.04.05 - [Algorithm] - 연결 리스트 || 링크드 리스트 연결 리스트 || 링크드 리스트 ❤️🔥TIL : Today I Learned 연결 리스트 링크드 리스트라고 부르기도 하고, 연결 리스트라고 부르기도 합니다. 연결 리스트란? - 연결리스트(Linked List)는 리스트의 ..
❤️🔥TIL : Today I Learned Stack, Queue 자료구조인 스택과 큐를 비교하여 설명합니다. Stack - 스택은 직역하면 더미, 퇴적, 쌓아 올림 이라는 뜻을 가지고 있다. 자료를 쌓았다고 하여 stack이다. - 스택은 후입선출(LIFO) 구조를 갖는 자료구조 이다. 마지막으로 추가된 요소가 제일 먼저 제거된다. - 자바스크립트에서는 배열을 이용하여 push 메서드를 사용하여 요소를 추가하고 pop 메서드를 사용하여 요소를 제거할 수 있습니다. - Javascript 에서 함수 실행 콘텍스트들이 쌓이는 Call stack 또는 브라우저의 방문 기록이 쌓이는 History stack 이 대표적이다. + 스택은 서로 관계가 있는 여러 작업을 연달아 수행하면서 이전의 작업 내용을 저..
❤️🔥TIL : Today I Learned 연결 리스트 링크드 리스트라고 부르기도 하고, 연결 리스트라고 부르기도 합니다. 연결 리스트란? - 연결리스트(Linked List)는 리스트의 항목들을 노드(node)에 저장하는 데이터 구조이다. - 각 노드는 데이터 필드와 다른 노드의 주소를 포함하는 링크 필드로 구성된다. - 연결 리스트를 사용하는 이점에는 쉬운 삽입 및 삭제 처리 기능, 크기 제한 없음, 비연속 메모리 공간 사용 기능 등이 있다. - 그러나 구현이 까다롭고 번거로우며 오류가 발생하기 쉽다. 데이터 필드 : 리스트의 원소, 즉 데이터 값을 저장하는 곳 링크 필드 : 다른 노드의 주소값을 저장하는 장소(포인터) Linked List에서 가장 앞 쪽 시작부분을 Head, 가장 마지막 부분..
❤️🔥TIL : Today I Learned 삽입 정렬, 병합 정렬 정렬 알고리즘 중에서 삽입 정렬과 병합 정렬의 이해와 방법을 설명합니다. 삽입 정렬(Insertion Sort)란? - 배열의 모든 요소를 앞에서 차례로 비교합니다.(이미 정렬된 노란색 부분과) - 자신의 위치를 찾아서 삽입하여 정렬 합니다. Big O : O(n^2) 삽입정렬의 장단점 장점 : Stable한 정렬, 대부분의 원소가 거의 정렬되어 있는 경우에 매우 빠르다 단점 : 원소 수가 많은 경우 적합하지 않고 비교적 많은 원소의 이동을 필요로 한다. const array = [5, 3, 8, 1, 2, 9, 4, 7, 6]; // 배열 const insertionSort = (arr) => { for (let i = 1; i < ..
❤️🔥TIL : Today I Learned 버블 정렬, 선택 정렬 정렬 알고리즘 중에서도 버블 정렬과 선택 정렬의 이해와 방법을 설명합니다. 정렬 이란? - 무작위로 섞여있는 데이터를 어떤 기준에 맞춰 정렬하는 알고리즘은 여러 가지가 있고, 정렬 알고리즘은 다양한 경우에 매우 유용하게 사용된다. 각종 데이터 목록을 정리하고 싶을 때 분포도의 중위값을 알아내고 싶을 때 데이터에서 중복값을 잡아내고 싶을 때 이진 탐색을 하고 싶을 때 정렬의 종류와 비교 내용은 아래와 같다. + 자 그런데 우리가 javascript 에서 자주 사용하는 sort() 메서드가 이미 존재하는데.. 정렬 알고리즘이 왜 필요할까요?? 정렬 알고리즘을 배워야하는 이유는 시스템 정렬이 항상 좋은 퍼포먼스를 보장하지는 않는다. 또한 데..
🎯목적 : Javascript Algorithm 문제풀이 과정을 기록합니다. 나만의 해결방법을 공유합니다. 문제 "*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요. 풀이 결과 해결 방법 n은 입력받은 값 3이 출력되었다. 이것을 활용하여 1,2,3 ...n 만큼 반복해서 출력해줘야 한다. 1 --- 2 --- 3 그래서 for문을 사용했고, i는 증가연산자로 n까지 증가하기 때문에 해당하는 라인의 숫자를 기억할 수 있다. 하지만 i 만큼 "*"를 출력하기 위해 다른 대부분의 풀이에서는 또 for문이 등장하여 이중포문의 형태로 문제풀이가 되었다. 나는 이중포문을 좋..