| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- BOJ
- 연결리스트
- 자료구조
- sort
- 자바스크립트
- 해시
- 알고리즘
- 정렬
- CSS
- 코테
- 합병 정렬
- 코딩테스트
- JS
- hash
- 브루트포스
- 최소공배수
- react
- 딥다이브
- 정규표현식
- 병합 정렬
- 기술면접
- 리액트
- 백준
- state
- 프로그래머스
- node.js
- JavaScript
- useState
- Node
- 완전탐색
- Today
- Total
목록2023/03 (12)
가치투자자
호이스팅 (Hoisting) 공식문서를 살펴보면, 호이스팅(hoisting)은 '인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것'을 의미한다고 나와있다. 역시 공식 문서의 용어들은 초보자가 공부하기에 쉽지 않다. 좀 더 쉬운 말로 호이스팅에 대해 설명해보고자 한다. * 기술면접 질문은 맨 아래에 적혀 있습니다 1. 호이스팅이란? 호이스팅은 변수가 선언된 시점보다 먼저 실행되는 현상이다. 좀더 쉽게 설명해보자면, 변수가 어디에 적혀있든지(선언된 시점) 상관없이 맨 위로 끌어와 먼저 실행하는 것을 말한다. 여기서 var, let, const, function, function*, class 키워드를 사용해 선언된 모든 식별자(변수, 함수, 클래스 등)는 호이스팅된다. 아래의 예제를 통해..
백준 1427번 : 소트인사이드 🔗 문제 링크 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 💬 문제 정렬 알고리즘 에 대한 이해가 있다면, 충분히 풀 수 있는 문제다. 1번째 줄에 정수 N이 주어진다. 이 정수의 각 자리수를 내림차순으로 정렬한다. 💡 입력값 받아오기 JavaScript로 풀 경우, 입력값(input)을 어떻게 받아와야 할 지가 중요하다. 이 문제에서는 1번째 줄에 정수 N만 주어진다. 정수 N을 받아오기만 하면 된다. 입력값을 받아오는 것과 관련해 더 자세한 내용은 아래 링크를 참고 바란다. https://v..
백준 1181번 : 단어 정렬 🔗 문제 링크 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 💬 문제 정렬 알고리즘 에 대한 이해가 있다면, 충분히 풀 수 있는 문제다. 1번째 줄에 정렬해야 하는 문자열의 개수 N이 주어진다. 2번째 줄부터 총 N개의 문자열이 주어지며, 이를 배열 arr로 받아준다. 길이가 짧은 것 순으로 정렬하고, 길이가 같을 겨우에는 사전 순으로 정렬한다. 중복된 단어가 있을 경우, 하나만 남겨준다. 💡 입력값 ..
백준 2751번 : 수 정렬하기2 🔗 문제 링크 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 💬 문제 정렬 알고리즘 에 대한 이해가 있다면, 충분히 풀 수 있는 문제다. 1번째 줄에 정렬해야 하는 수의 개수 N이 주어진다. 2번째 줄부터 총 N개의 수가 주어지며, 이를 배열 arr로 받아준다. 배열 arr를 오름차순으로 정렬하여 출력해준다. 💡 입력값 받아오기 JavaScript로 풀 경우, 입력값(input)을 어떻게 받아와야 ..
퀵 정렬 (Quick Sort) 1. 퀵 정렬이란? 퀵 정렬(quick sort) 역시 병합 정렬과 마찬가지로 어떤 문제를 2개의 작은 문제로 분리해 각각을 해결하는 분할 정복 알고리즘 중 하나다. 1-1) 차이점 병합 정렬 - 분할 단계에서는 분할만 하고 병합 단계에서 정렬을 한다 퀵 정렬 - 분할 단계에서 정렬이 이루어지며, 병합 시에는 병합만 한다. 퀵 정렬 알고리즘은 다음 개념들을 바탕으로 진행된다. 분할 (Divde) : 입력된 배열을 기준점(pivot)을 기준으로 비균등하게 분할한다. 정복 (Conquer) : 분할된 부분 배열을 정렬한다. 부분 배열의 크기가 충분히 작지 않으면(리스트의 길이가 1이 아니면) 순환 호출을 이용하여 다시 분할한다. 결합 (Combine) : 정렬된 부분 배열들을..
백준 24060번 : 병합 정렬1 🔗 문제 링크 https://www.acmicpc.net/problem/24060 24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net 🎯 풀이를 위한 개념 설명 병합 정렬에 대한 이해가 있어야 풀 수 있는 문제이다. 쉽게 설명을 하자면, 병합 정렬은 입력된 배열을 크기가 1인 부분 배열로 쪼갠 다음, 각 부분 배열의 인덱스 0번째 값을 비교하여 작은 값부터 빈 배열에 넣어 정렬하는 알고리즘이다. 병합 정렬에 대해 더 자세한 설명은 아..