본문 바로가기

분류 전체보기539

[Daily Scrum] Meet 01. 2023-03-06 월요일 시간 : 22:00 ~ 22:40 진행 내용 : 자기소개, 공부계획 소개, Todo-list 공유 2023. 3. 7.
[Programmers] (2018 KAKAO BLIND RECRUITMENT) Lv 2. [1차] 프렌즈4블록 https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(m, n, board) { const dirX = [0, 1, 1, 0], // 시계 방향 dirY = [0, 0, 1, 1]; board = board.map((v) => v.split("")); do { const remove = []; for (let i = 0; i < m - 1; ++i) { for (let j = 0; j < n - 1; ++j) { if.. 2023. 3. 6.
[Programmers] (Summer/Winter Coding(~2018)) Lv 2. 방문 길이 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr const solution = (dirs) => { const [x, y, BOUNDARY] = [0, 1, 5]; const inArea = (command, pos) => (command === 'L' && pos[x] > -BOUNDARY) || (command === 'R' && pos[x] -BOUNDARY) .. 2023. 3. 3.
[Programmers] (2018 KAKAO BLIND RECRUITMENT) Lv 2. [3차] 파일명 정렬 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(files) { return files.map((file) => { const HEAD = file.match(/\D+/g)[0], NUMBER = file.match(/\d+/g)[0], TAIL = file.slice(file.indexOf(NUMBER) + NUMBER.length, file.length); return { HEAD, NUMBER, TAIL }.. 2023. 3. 3.
[Algorithm] 힙 정렬 (Heap Sort) 완전이진트리(complete binary tree) 완전 : 루트(root) 노드부터 시작해 왼쪽, 오른쪽 순으로 자식 노드부터 추가하는 모양 이진 : 부모가 가질수 있는 자식의 개수는 최대 2개 트리 : 요소의 상하 관계를 부모(parent)와 자식(child), 자식 간의 관계를 형제(sibling) 루프 : 트리의 첫 노드 리프 : 트리의 마지막 노드 자료구조 ‘힙(heap)’ 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조 최댓값, 최솟값을 쉽게 추출할 수 있는 자료구조 최대 힙 : '부모의 값이 자식의 값보다 항상 큰' 조건을 만족하는 완전이진트리 최소 힙 : '부모의 값이 자식의 값보다 항상 작은' 조건을 만족하는 완전이진트리 자식과 부모 관계식 부모 : a[(i - 1) /.. 2023. 2. 27.
[Algorithm] 병합 정렬 (Merge Sort) 병합 정렬 (Merge Sort) 합병 정렬이라고도 부르며, 이 정렬은 안정 정렬에 속하며, 분할 정복 기법과 재귀 용법을 활용한 정렬 알고리즘이다. * [분할 정복(divide and conquer) 방법] 큰 문제를 작은 문제 단위로 쪼개면서 해결해나가는 방식. 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. 분할 정복 방법은 대개 순환 호출을 이용하여 구현한다. 병합 정렬은 정렬할 원소 목록을 원소가 하나 밖에 남지 않을 때까지 절반으로 잘라 비슷한 크기의 두 부분으로 계속 나눈다. 정렬할 때는 각 절반의 가장 작은 요소를 비교하여 수행된다. (각 목록의 첫 번째 요소가 가장 먼저 비교된다.) 더 작은 값으로 시작되는 것을 정렬된 목록에 추가.. 2023. 2. 27.
[Algorithm] 퀵 정렬 (Quick Sort) 퀵 정렬 (Quick Sort) Quick Sort은 분할 정복(divide and conquer) 방법 을 통해 주어진 배열을 정렬한다. * [분할 정복(divide and conquer) 방법] 큰 문제를 작은 문제 단위로 쪼개면서 해결해나가는 방식. 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. 분할 정복 방법은 대개 순환 호출을 이용하여 구현한다. Quick Sort은 불안정 정렬에 속하며, 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. 분할 정복 알고리즘의 하나로, 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방법이다. 또한, 합병 정렬(Merge Sort)과 달리 Quick Sort는 배열을 비균등하게 분할한다. 프.. 2023. 2. 27.
[Algorithm] 삽입 정렬 (Insertion Sort) 삽입 정렬 (Insertion Sort) 손 안의 카드를 정렬하는 방법과 유사하다. Insertion Sort는 Selection Sort와 유사하지만, 좀 더 효율적인 정렬 알고리즘이다. Insertion Sort는 2번째 원소부터 시작하여 그 앞(왼쪽)의 원소들과 비교하여 삽입할 위치를 지정한 후, 원소를 뒤로 옮기고 지정된 자리에 자료를 삽입 하여 정렬하는 알고리즘이다. Selection Sort와 Insertion Sort는 k번째 반복 이후, 첫번째 k 요소가 정렬된 순서로 온다는 점에서 유사하다. 하지만, Selection Sort는 k+1번째 요소를 찾기 위해 나머지 모든 요소들을 탐색한다. 하지만 Insertion Sort는 k+1번째 요소를 배치하는 데 필요한 만큼의 요소만 탐색하기 때문.. 2023. 2. 27.
[Algorithm] 선택 정렬 (Selection Sort) 선택 정렬 (Selection Sort) Selection Sort는 Bubble Sort과 유사한 알고리즘으로, 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘이다. Selection Sort와 Insertion Sort를 헷갈려하는 사람들이 종종 있는데, Selection Sort는 배열에서 해당 자리를 선택하고 그 자리에 오는 값을 찾는 것이라고 생각하면 편하다. 프로세스 주어진 배열 중에 최소값을 찾는다. 그 값을 맨 앞에 위치한 값과 교체한다. (pass) 1회전을 수행하고 나면 가장 작은 값의 자료가 맨 앞에 오게 되므로 그 다음 회전에서는 맨 처음 위치를 뺀 나머지 배열을 같은 방법으로 교체한다. 하나의 원소만 남을 때까지 위의 1~3 과정을 반복한다.. 2023. 2. 27.
[Algorithm] 거품 정렬 (Bubble Sort) 거품 정렬 (Bubble Sort) Bubble Sort는 Selection Sort와 유사한 알고리즘으로 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘 이다. 이름의 유래로는 정렬 과정에서 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어졌다고 한다. 프로세스 1회전에 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를, 세 번째 원소와 네 번째 원소를, … 이런 식으로 (마지막-1)번째 원소와 마지막 원소를 비교하여 조건에 맞지 않는다면 서로 교환한다. 1회전을 수행하고 나면 가장 큰 원소가 맨 뒤로 이동하므로 2회전에서는 맨 끝에 있는 원소는 정렬에서 제외되고, 2회전을 수행하고 나면 끝에서 두 번째 원소까지는 정렬.. 2023. 2. 27.