본문 바로가기
반응형
SMALL

algorithm63

크레인 인형뽑기 게임 https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 스택 큐 문제 같고 설명이 아주 자세해서 직관적으로 한번에 풀어냄! 원본배열을 수정해야하므로 splice 를 사용했는데2차원 배열에서 splice 써본 건 처음이라위치 넣는 부분에board.splice(selcect, 1, 0); // 2차원 배열에서는 이렇게하면 그냥 배열 자체가 0으로 바뀌어버림board[j].splice([moves[i] - 1], 1, 0); 이렇게 원하는 2차원 배열의 위치를.. 2024. 5. 14.
연습문제 > 햄버거 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/133502?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1 2 3 1 이 연속되면 그 배열에서 재료 4개 날리고다시 검사하는 식의 while 무한루프를 만들면 되는데1 2 3 1 이 연속될 때 i++; 식으로 구현했다가 범위 오버 문제도 있고 참조 문제도 있어서ingredient.length - 4 (초과하는 오버 범위를 빼기) 식으로 구현해주는게 좋고 while의 조건을 그 전과 비교해 감소했는지 여부를 체크하는 플.. 2024. 5. 13.
연습문제 > 대충 만든 자판 https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr구조부터 짬 while 문이 유리하다고 판단 됨원하는 값의 길이가 targets의 길이에 도달할때 까지 반복하고targets의 각 인덱스 총합을 push 할 때까지 그리고 잠시 아직 완성안된 while 무한루프를 해제한 뒤 targets를 하나씩 불러오게 하기 A B C D 를 가장 빠르게 누를 수 있는 방법을 찾으려면keymap 배열 [ 'ABACD', 'BCEFD' ] 에서 가장 근접한 숫자의 i.. 2024. 5. 11.
연습문제 > 숫자 짝꿍 https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문자열을 하나씩 매칭해서 공통되는 걸 찾고 중복되지 않도록 Y의 값에서는 비교 된 게 있으면 그 값을 splice로 빼주는 식으로 처리  효율성체크에서 통과 못함 2중 포문 줄이기  응 그래도 통과 못해 지피티선생....  털썩.. 2024. 5. 8.
연습문제 > 문자열 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제부터 동공지진이 왔음 내가 문해력이 딸리나 뭔소리인지 이해하기가 어려움그냥 해보면서 이해하는걸로이런식의 재귀로 풀어야할 줄 알았는데시간초과  발생 text = text.slice(i + 1) 도 원래는 read라는 변수에 담은 걸로 split 하려고 했는데nana 를 na 로 분리할 때 그냥 na로 두번 나눠서 공중분해되는 문제 때문에 지피티로 방법 찾음 ㅜㅜ레벨 2 보다 왜 훨씬 어려운 문제 .. 2024. 5. 7.
로또의 최고 순위와 최저 순위 https://school.programmers.co.kr/learn/courses/30/lessons/77484?language=javascript#fn1 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정렬을 안해도 풀리는 문제로또번호 불확실한 0을 잘 카운트해내면 풀 수 있음  0이면 바로 다음 구문으로 넘기고, 당첨번호와 매칭되는지 체크 함당첨 갯수와 0의 갯수가 구해질껀데  당첨 갯수에 따라 최저 당첨 순위를 low에 담음 그리고 0의 갯수와 당첨번호를 더한게 최고 순위라 high 에 담고 return 해주면 끝 코드가 길지만 그래도 직관적으로 바로 .. 2024. 5. 7.
탐욕법(Greedy) > 체육복 https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 체육복 여분 가져온 사람의 배열을 하나씩 제거하면서 없어질 때까지 while을 돌리고빌려주기가 가능할 때 lost에서 하나씩 제거해가면서마지막에 체육복 갯수에서 lost의 배열 갯수를 빼면 나올 줄 알았다function solution(n, lost, reserve) {    while (reserve.length > 0) {        const reserveNum = reserve.pop(); .. 2024. 4. 30.
Summer/Winter Coding(~2018) > 소수 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 서로다른 3개의 수를 더했을 때의 값들을 전부 뽑는 순열 배열을 하나 만든다. 2. 그 배열 중 소수인 것의 갯수를 세서 return 한다. 푸는 방법은 알겠는데 저걸 하나하나 모두 짜라고하면 못함 출제빈도가 은근 높아서 다양한 순열 뽑는 알고리즘은 어느정도 함수로 일단 갖고 있어야할 듯 2024. 4. 24.
연습문제 > 덧칠하기 https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 이런식으로 접근 했다 // n : 6, m : 1, section : [1, 3, 5] // answer : 3 // 반환 결과 : 5 롤러의 길이 m 이 1일 때는 다른 결과가 나오므로 if (m === 1) { return section.length; } 를 추가했지만 60% 밖에 통과를 못했고 // 입력값 〉 5, 2, [1, 2, 5] // 기댓값 〉 2 // 반환 결과 : 5 라.. 2024. 4. 19.
해시 > 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr includes() includes() includes() 메서드는 문자열 또는 배열에서 특정 값이 포함되어 있는지를 확인하는 데 사용됩니다. 이 메서드는 부울린(boolean) 값을 반환합니다. 문자열에서 사용 const str = 'Hello, World!'; console.log(str. yongfront.tistory.com 또는 startsWith() startsWith() startsW.. 2024. 4. 10.
해시 > 완주하지 못한 선수 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 배열에서 배열 빼기를 하는 문제다. 배열에서 배열 빼기 배열에서 배열을 빼는 연산은 자바스크립트에서 직접적으로 지원되지 않지만, 다음과 같은 방법으로 구현할 수 있습니다. filter() 메서드와 includes() 메서드 사용 const arr1 = [1, 2, 3, 4, 5]; const arr2 = yongfront.tistory.com 근데 이렇게 하면 중복된 요소까지 다 빠져버려서 진정한.. 2024. 4. 10.
정렬 > H-Index https://school.programmers.co.kr/learn/courses/30/lessons/42747#fn1 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 문제를 한참 읽어 봤다 정렬을 하면 그 해당값들의 index를 활용하기 편하고 인용된 횟수의 최소 값을 구하면 어찌저찌 될 것 같은데 순회하는 것에 대해 아직 정확히 숙련 돼 있지 않은 듯 함 3 0 6 1 5 라고 하면 일단 b - a 내림차순 정렬을 하면 6 5 3 1 0 for (let i = 0; i < sortArray.length; i++) 를 통해 각 요소를 순회 함 i.. 2024. 4. 3.
정렬 > 가장 큰 수 https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 골치아픈 문제임 처음에 모든 경우의 수를 만들어서 탐욕알고리즘으로 풀까라고 생각도 해봤지만 탐욕알고리즘조차 아직 제대로 다뤄보지 않아서 그리고 카테고리 자체가 정렬이니 정렬을 이용해서 풀어보라고 해서 sort 를 써서 단순히 내림차순을 해보았더니 당연히 자리수 때문에 이상하게 정렬 된다 방법을 찾던 중 문자열로 정렬하면 어떨까 하는 생각이 들어서 이런 식으로 문자열로 변경한 다음에 첫번째 자리수를.. 2024. 4. 3.
연습문제 > 소수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소수 만들기라는 문제를 풀려면 소수를 찾는 방법부터 알아야 한다. 그래서 먼저 소수 찾기부터 풀어보고 다음에 소수 만들기를 풀 예정이다. 소수는 1과 자기 자신 외에는 어떤 수로도 나누어떨어지지 않는 1보다 큰 자연수이다. 가장 간단한 소수 판별 방법은 2부터 해당 숫자의 제곱근까지 모든 숫자로 나누어보는 것이. 자바스크립트에서는 Math.sqrt 를 활용하여 쉽게 소수를 찾을 수 있는데 func.. 2024. 3. 31.
연습문제 > 기사단원의 무기 https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일단 약수의 개수를 구하는 함수를 활용해서 풀어보려고 한다 function count(n) { let p = 0; for (let i = 1; i 2024. 3. 29.
완전탐색 > 모의고사 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... let p1 = [1, 2, 3, 4, 5]; le.. 2024. 3. 29.
레드-블랙 트리(Red-Black Tree) 레드-블랙 트리(Red-Black Tree)는 이진 탐색 트리의 한 종류로, 균형을 유지하기 위해 특정 규칙을 따르는 자료구조입니다. 이는 삽입, 삭제, 탐색과 같은 기본적인 동작들을 O(log n)의 시간 복잡도로 수행할 수 있게 해 줍니다. 레드-블랙 트리는 다음과 같은 성질을 만족합니다: 각 노드는 레드 혹은 블랙입니다. 루트 노드는 블랙입니다. 모든 리프 노드(NIL 노드)는 블랙입니다. 레드 노드의 자식 노드들은 모두 블랙입니다. (레드 노드는 연속되지 않습니다.) 각 노드로부터 해당 노드의 후손 리프 노드로 이어지는 모든 경로에는 같은 수의 블랙 노드가 존재합니다. 자바스크립트로 레드-블랙 트리를 구현하기 위해서는 먼저 노드를 정의하는 클래스와 트리를 정의하는 클래스가 필요합니다. 여기서는 간.. 2024. 3. 24.
해시테이블(Hashtable) 해시테이블(Hashtable)은 키(Key)를 값(Value)에 매핑하여 데이터를 저장하는 자료 구조입니다. 이를 통해 데이터의 추가, 검색, 삭제 등을 평균적으로 상수 시간(O(1))에 수행할 수 있습니다. 해시테이블의 핵심은 해시 함수(Hash Function)입니다. 해시 함수는 임의 크기의 데이터를 고정된 크기의 유일한 값(해시 코드)으로 변환합니다. 이 해시 코드는 배열의 인덱스로 사용되어, 데이터의 위치를 결정합니다. 해시 충돌(Hash Collision) 두 개 이상의 키가 같은 해시 값을 가지게 되는 경우를 해시 충돌이라고 합니다. 해시테이블 구현 시 충돌을 해결하는 방법은 여러 가지가 있지만, 가장 일반적인 두 가지 방법은 체이닝(Chaining)과 오픈 어드레싱(Open Addressi.. 2024. 3. 20.
그래프 그래프는 노드(정점)들과 그 노드들을 연결하는 간선(엣지)들의 집합으로 구성된 자료 구조입니다. 그래프는 네트워크 모델링, 경로 찾기, 소셜 네트워크 분석 등 다양한 분야에서 활용됩니다. 그래프는 크게 두 가지로 분류됩니다: 무방향 그래프(Undirected Graph): 간선에 방향이 없어, 두 정점이 서로 연결되어 있는 구조입니다. 방향 그래프(Directed Graph): 간선에 방향이 있어, 한 정점에서 다른 정점으로의 일방향 연결을 나타냅니다. 그래프는 또한 가중치가 있는 그래프와 가중치가 없는 그래프로 나눌 수 있으며, 가중치가 있는 그래프에서는 각 간선에 비용 또는 가중치가 할당됩니다. JavaScript에서 그래프 구현하기 JavaScript로 그래프를 구현할 수 있는 여러 방법이 있습니다.. 2024. 3. 20.
우선순위 큐(Priority Queue)와 덱(Deque) 우선순위 큐(Priority Queue)와 덱(Deque, Double-Ended Queue)은 모두 추상 자료형(Abstract Data Type, ADT)으로, 데이터를 저장하고 접근하는 데 사용되는 컬렉션입니다. 그러나 그들이 데이터를 관리하고 접근하는 방식에는 중요한 차이가 있습니다. 우선순위 큐(Priority Queue) 우선순위 큐는 각 요소가 우선순위와 함께 저장되는 자료구조입니다. 요소들은 우선순위에 따라 정렬되며, 요소를 제거할 때는 가장 높은 우선순위를 가진 요소가 먼저 제거됩니다. 우선순위 큐는 힙(Heap) 자료구조를 사용하여 효율적으로 구현될 수 있습니다. 힙을 사용하는 경우, 요소의 추가와 제거(특히, 최소값 또는 최대값의 제거)가 O(logN) 시간 복잡도를 가집니다. 사용 .. 2024. 3. 20.
이진힙(Binary Heap) 이진 힙(Binary Heap)은 완전 이진 트리를 기반으로 하는 자료 구조로, 주로 우선순위 큐를 구현하는 데 사용됩니다. 이진 힙은 크게 두 종류로 나뉩니다: 최소 힙(Min Heap)과 최대 힙(Max Heap)입니다. 최소 힙에서는 부모 노드의 키 값이 자식 노드의 키 값보다 항상 작거나 같아야 하며, 최대 힙에서는 부모 노드의 키 값이 자식 노드의 키 값보다 항상 크거나 같아야 합니다. 이로 인해 이진 힙의 루트 노드는 전체 트리에서 최소값(최소 힙의 경우) 또는 최대값(최대 힙의 경우)을 가지게 됩니다. 이진 힙을 자바스크립트로 구현하는 것은 배열을 사용하여 비교적 간단합니다. 힙 내의 각 요소들은 일련의 연산을 통해 관리되며, 주로 다음 네 가지 주요 연산을 구현합니다: 삽입(Insert):.. 2024. 3. 20.
깊이/너비 우선 탐색(DFS/BFS) > 게임 맵 최단거리 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일단 console.log 로 지형을 파악해본다 자료구조가 배열이기 때문에 오른쪽으로 가는걸 먼저 체크하는게 일단 편해보임 현재위치를 저장하고 if (오른쪽이 0일 경우) 바로 다음 배열의 동일 index를 체크 (아래로 감) else 오른쪽이 1일 경우 오른쪽으로 한칸 이동한 현재위치를 저장 후 다시 위의 조건문을 호출해야하니까 저 조건문은 while 문이 됨 while (현재위치가 5,5일때까지.. 2024. 3. 8.
스택/큐 > 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 배열이 주어지고 그 각 시점의 가격이 떨어지지 않은 것만 카운트 하면 된다 1 = 4번 상승 2 = 3번 상승하거나 보합 3 = 1번 보합 2 = 1번 상승 3 = 0 스택/큐 문제라는데 아직 익숙하지 않아서인가 그냥 푸는게 더 쉽게 구현이 가능해보이는데 이런식의 접근을 했을 때 예제는 풀리는데 다른 예시들이 통과가 안됨 가격이 떨어졌을 때 2번째 중첩 포문에서의 반복을 중단하고 다음 숫자로 넘어.. 2024. 2. 28.
DFS, BFS, 트리 순회(traversal) 이진트리에서 데이터를 검색하거나 방문하는 방법에는 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS), 그리고 트리 순회(Traversal)가 있습니다. 각각의 방법은 특정 목적에 따라 사용되며, 이진트리의 모든 노드를 효율적으로 방문하는 다양한 전략을 제공합니다. 깊이 우선 탐색 (Depth-First Search, DFS) DFS는 트리의 깊이를 우선적으로 탐색하는 알고리즘입니다. 트리의 루트에서 시작하여 가능한 한 깊게 트리를 탐색한 후, 더 이상 탐색할 노드가 없을 때 이전 분기점으로 되돌아가 다른 경로를 탐색합니다. 이진트리에서 DFS를 구현하는 세 가지 주요 방법은 전위 순회(Preorder), 중위 순회(Inorder), 후위 순회(Postorder)입니다. 전위 순회 (Preorder): .. 2024. 2. 25.
remove : 이진탐색트리(Binary Search Tree, BST) 이진탐색트리(Binary Search Tree, BST)에서 remove 메소드를 구현하는 것은 조금 더 복잡합니다. 노드를 제거할 때는 세 가지 주요 상황을 고려해야 합니다: 리프 노드 제거: 제거하려는 노드가 리프 노드인 경우, 단순히 그 노드를 제거하면 됩니다. 한 개의 자식을 가진 노드 제거: 제거하려는 노드가 하나의 자식만 가지고 있는 경우, 그 노드를 제거하고, 그 자식을 제거된 노드의 부모 노드에 연결합니다. 두 개의 자식을 가진 노드 제거: 제거하려는 노드가 두 개의 자식을 가지고 있는 경우, 노드의 오른쪽 서브트리에서 가장 작은 값을 찾거나(또는 왼쪽 서브트리에서 가장 큰 값을 찾아) 그 값을 제거하려는 노드의 위치로 이동하고, 원래 그 값을 가지고 있던 노드를 제거합니다. 아래는 BST.. 2024. 2. 25.
search : 이진탐색트리(Binary Search Tree, BST) 이진탐색트리(Binary Search Tree, BST)에서 search 메소드를 구현하는 것은 insert 메소드와 유사한 방식으로 진행할 수 있습니다. search 메소드는 트리 내에서 특정 데이터를 찾아 그 데이터가 존재하는지 여부를 반환하거나, 해당 데이터를 포함하는 노드를 반환합니다. 이 메소드 역시 재귀적인 방법을 사용하여 구현할 수 있습니다. 아래는 BST 클래스에 search 메소드를 추가한 예시입니다. 이 메소드는 주어진 데이터와 일치하는 노드를 찾으면 그 노드를 반환하고, 데이터를 찾지 못하면 **null**을 반환합니다. class Node { constructor(data, left = null, right = null) { this.data = data; this.left = le.. 2024. 2. 25.
insert : 이진탐색트리(Binary Search Tree, BST) 이진탐색트리(Binary Search Tree, BST)의 insert 함수를 구현하는 것은 자료구조의 기본을 이해하는 좋은 방법입니다. 이진탐색트리는 각 노드가 최대 두 개의 자식 노드를 가지며, 왼쪽 자식 노드의 값은 부모 노드의 값보다 작고, 오른쪽 자식 노드의 값은 부모 노드의 값보다 큰 특성을 가지고 있습니다. 이러한 성질을 이용하여 데이터를 정렬된 상태로 저장할 수 있으며, 검색, 삽입, 삭제 작업을 효율적으로 수행할 수 있습니다. 아래는 자바스크립트로 이진탐색트리를 구현하고, insert 메소드를 추가하는 간단한 예제입니다. class Node { constructor(data, left = null, right = null) { this.data = data; this.left = left.. 2024. 2. 25.
이진트리(Binary tree) 이진 트리는 각 노드가 최대 두 개의 자식 노드를 가질 수 있는 트리 구조입니다. 일반적으로 이진 트리는 검색, 정렬, 데이터 저장 등 다양한 컴퓨터 과학 문제를 해결하는 데 사용됩니다. 이진 트리의 다양한 종류 중에 "Full Binary Tree", "Perfect Binary Tree", "Complete Binary Tree", "Degenerate (or Pathological) Binary Tree", "Balanced Binary Tree" 들은 각각 고유한 특성을 가지고 있지만, 몇 가지 공통적인 유사점도 공유합니다. 여기서는 이 다섯 가지 이진 트리 유형의 주요 특징과 함께 그들이 공유하는 유사점에 대해 설명합니다. 주요 특징 Full Binary Tree: 모든 노드가 0개 또는 2개의.. 2024. 2. 24.
스택/큐 > 프로세스 https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 를 실제로 구현해보고자 했다 funct.. 2024. 2. 22.
스택(Stack), 큐(Queue), 트리(Tree) 스택(Stack) 스택은 후입선출(LIFO, Last-In-First-Out) 방식의 자료 구조입니다. 가장 마지막에 추가된 요소가 가장 먼저 제거됩니다. 자바스크립트에서 스택은 배열을 통해 쉽게 구현할 수 있습니다. 배열의 push 메서드로 요소를 스택에 추가하고, pop 메서드로 가장 마지막에 추가된 요소를 제거할 수 있습니다. let stack = []; stack.push(1); // 스택에 1 추가 stack.push(2); // 스택에 2 추가 console.log(stack.pop()); // 가장 마지막에 추가된 2를 제거하고 출력 console.log(stack); // 남아 있는 스택의 요소 확인 큐(Queue) 큐는 선입선출(FIFO, First-In-First-Out) 방식의 자료 .. 2024. 2. 22.
728x90
반응형
LIST