목록자바스크립트 (41)
가치투자자
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b5Va3L/btr7gQCZKvO/mqC5a4TYBJAJk1Q0y7h7i0/img.webp)
호이스팅 (Hoisting) 공식문서를 살펴보면, 호이스팅(hoisting)은 '인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것'을 의미한다고 나와있다. 역시 공식 문서의 용어들은 초보자가 공부하기에 쉽지 않다. 좀 더 쉬운 말로 호이스팅에 대해 설명해보고자 한다. * 기술면접 질문은 맨 아래에 적혀 있습니다 1. 호이스팅이란? 호이스팅은 변수가 선언된 시점보다 먼저 실행되는 현상이다. 좀더 쉽게 설명해보자면, 변수가 어디에 적혀있든지(선언된 시점) 상관없이 맨 위로 끌어와 먼저 실행하는 것을 말한다. 여기서 var, let, const, function, function*, class 키워드를 사용해 선언된 모든 식별자(변수, 함수, 클래스 등)는 호이스팅된다. 아래의 예제를 통해..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bc38x2/btr8f0rn3Lg/RkRwkRoYCvyaJkx6Yxkkb0/img.png)
백준 1181번 : 단어 정렬 🔗 문제 링크 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 💬 문제 정렬 알고리즘 에 대한 이해가 있다면, 충분히 풀 수 있는 문제다. 1번째 줄에 정렬해야 하는 문자열의 개수 N이 주어진다. 2번째 줄부터 총 N개의 문자열이 주어지며, 이를 배열 arr로 받아준다. 길이가 짧은 것 순으로 정렬하고, 길이가 같을 겨우에는 사전 순으로 정렬한다. 중복된 단어가 있을 경우, 하나만 남겨준다. 💡 입력값 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/esvLFS/btr8hmHGb9q/MI51aIheeB2MCN8jphU6b0/img.png)
백준 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)을 어떻게 받아와야 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bYLyH9/btr8hm1W6YM/mS6OE0Ockfql7Oh6EM1WX0/img.png)
백준 2164번 : 카드2 🔗 문제 링크 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 💬 문제 큐(queue) 에 대한 이해가 있다면 더 잘 이해할 수 있고, 큐를 몰라도 쉽게 이해할 수 있는 문제이다. 숫자 N이 주어지므로 1부터 N까지 담고 있는 배열을 생성해준다. 맨 위에 있는 수, 즉 배열 첫 번째 요소를 제거(shift)해준다. 그 다음 위에 있는 수를 빼서(shift) 맨 밑으로 옮겨준다(push). 그리고 단 1장의 숫자가 남을..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/buWsBF/btr1Wx26OXo/RXkuPdOzGVODqsw1MajP9k/img.png)
JS로 백준 푸는 법 1. Node.js fs모듈 사용법 백준에서 JavaScript로 문제를 풀기 위해선 Node.js를 사용해야 하며, 이때 readline 모듈이나 fs 모듈로 입력값(input)을 받아와야 한다. 이 중 속도나 코드의 길이, 작성 편리성에 있어 fs 모듈 이 더 나으므로, fs 모듈로 백준 문제를 풀어보고자 한다. 1) 입력값(input)의 종류에 따른 fs 모듈 사용법 어떤 종류의 입력값을 받냐에 따라 fs 모듈의 코드가 달라진다. (1) 입력값이 하나일 때 const input = require('fs').readFileSync('/dev/stdin').toString().trim(); 예시> 3 (2)입력값 사이에 공백에 끼여있을 때 split(' ') 로 공백을 잘라주면, ..