분류 전체보기(101)
-
[모던 자바스크립트 Deep Dive] 42장. 비동기 프로그래밍
1. 동기 처리와 비동기 처리 - 함수의 실행 순서는 실행 컨텍스트 스택으로 관리. - 자바스크립트 엔진은 단 하나의 실행 컨텍스트를 가지고, 한 번에 하나의 태스크만 실행할 수 있는 싱글 스레드 방식으로 동작한다. - 싱글 스레드 방식은 한 번에 하나의 태스크만 실행할 수 있기 때문에 처리에 시간이 걸리는 태스크를 실행하는 경우 블로킹(blocking, 작업중단)이 발생한다. function sleep(func, delay){ const delayUntil = Date.now() + delay; while(Date.now() < delayUntil); func(); } function foo(){ console.log('foo'); } function bar(){ console.log('bar'); }..
2023.03.20 -
[백준 알고리즘] Node.js 1813. 논리학 교수
1. 문제 https://www.acmicpc.net/problem/1813 1813번: 논리학 교수 첫째 줄에 항승이가 한 말의 개수 N이 주어진다. N은 1보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄에 항승이가 칠판에 작성한 내용에 있는 정수가 주어진다. 이 정수는 50보다 작거 www.acmicpc.net 2. 풀이 - 문제를 보면 정확하게 a개의 말은 참이다. 정확하게 b개의 말은 참이다. 정확하게 c개의 말은 참이다. 라는 표현이 있는데, 예제 입력을 통하여 자세하게 알 수 있었다. ' 입력 4 / 0 1 2 3, 출력 1 ' 이라는 값은 0의 값은 0 개, 1의 값은 1개, 2의 값은 2개, 3의 값은 3개 가 있어야 한다는 의미이다. 0의 값이 입력될 경우 항상 모순이 발생..
2023.03.20 -
[백준 알고리즘] Node.js 1551. 수열의 변화
1. 문제 https://www.acmicpc.net/problem/1551 1551번: 수열의 변화 첫째 줄에 수열의 크기 N과 K가 주어진다. N은 20보다 작거나 같은 자연수이고, K는 0보다 크거나 같고, N-1보다 작거나 같은 정수이다. 둘째 줄에는 수열이 ‘,’로 구분되어 주어진다. 수열을 이루 www.acmicpc.net 2. 풀이 - 문제에서 크기가 n인 수열을 통하여 만든 새로운 수열을 만들고, 만들어진 수열을 통하여 다시 수열을 만드는 방법으로 k번 반복하였을 때 만들어진 수열을 구하는 문제이다. - k가 0일 경우에는 입력 값 그대로 출력하면 된다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().sp..
2023.03.20 -
[백준 알고리즘] Node.js 1526. 가장 큰 금민수
1. 문제 https://www.acmicpc.net/problem/1526 1526번: 가장 큰 금민수 첫째 줄에 N이 주어진다. N은 4보다 크거나 같고 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 풀이방법 1) 4와 7로 이루어진 수 중 가장 큰 수를 찾기 위해 입력받은 숫자부터 내려가는 방식으로 생각. 2) 이후 자리 수 별로 잘라서 그 숫자가 4 또는 7인지 확인하고 새로운 배열에 true, false로 담아둠. 3) 배열에 false 가 없다면 그 숫자가 가장 큰 숫자이기 때문에 반복문을 멈추고 출력! const inputs = +require('fs').readFileSync('/dev/stdin').toString().trim(); let answer =..
2023.03.16 -
[백준 알고리즘] Node.js 1524. 세준세비
1. 문제 https://www.acmicpc.net/problem/1524 1524번: 세준세비 첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 100보다 작거나 같다. 각 테스트 케이스는 다음과 같이 이루어져 있다. 첫째 줄에 N과 M이 들어오고, 둘째 줄에는 세준이의 병사들의 힘이 들어 www.acmicpc.net 2. 풀이 방법 - 세준이는 N명의 병사, 세비는 M명의 병사를 키웠다. 여러 번의 전투가 진행되는데 각 전투에서 제일 약한 병사가 죽는다. 만약 제일 약한 병사가 여러 명이고, 양 편에 모두 있다면, 세비의 제일 약한 병사 중 한 명이 임의로 죽는다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim()..
2023.03.16