문제https://www.acmicpc.net/problem/2292 풀이벌집의 방 수가 6의 배수대로 증가하는 모습을 보며 2 번째 방의 시작인 2와 끝인 7의 변화를 지정해 주며, 입력되는 N이 해당 범위 내에 속하는 지를 확인하며 시뮬레이션 한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n');let n = +input.shift();if (n === 1) console.log(1);else { let cnt = 1; let [min, max] = [2, 7]; while ..
분류 전체보기
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이필자는 해당 문제를 단순 구현으로 풀이하려 했다. DP 알고리즘을 이용해 이전 문자열 + '0'.repeat(5 ** (i - 1)) + 이전 문자열 로 문자열을 구해 풀려했지만, 특정 케이스에서는 컴파일 에러가 발생했다. 그래서 수학적인 접근을 시도했다. 우선 문자열에서 규칙을 찾아보자면, 1의 개수는 4 * n개 이다. 그리고 0은 5개로 자른 문자열에서 항상 2번 인덱스에 위치한다. 이와같은 특징을 이용해 1과 0을 구분할 수 있는 check 함수를 제작해보자.check 함수에서는 크게 3가지 경우를 처리한다.1. 입력된 인덱스 값이 5보다..
동기 처리와 비동기 처리함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 생성되며 콜 스택에 푸시되고 함수 코드가 실행된다. 함수 코드의 실행이 종료되면 실행 컨텍스트는 실행 컨텍스트 스택에서 팝되어 제거된다.const foo = () => {};const bar = () => {};foo();bar(); 함수의 실행 순서는 실행 컨텍스트 스택으로 관리한다. JS 엔진은 단 하나의 실행 컨텍스트 스택을 갖는다. 이처럼 JS 엔진은 한 번에 하나의 태스크만 실행할 수 있는 싱글 스레드 방식으로 동작하며 이러한 동작 방식 때문에 이전 작업이 끝나기전에 다음 작업을 할 수 없는 블로킹 현상이 발생한다.// sleep 함수는 일정 시간(delay)이 경과한 이후에 콜백 함수(func)를 호출한다.fun..
JSX(Javascript XML) 란?보통 리액트를 통해 JSX를 접하기에 JSX가 리액트의 전유물로 생각하는 경우가 많다. 하지만 JSX는 리액트에서 사용하는 것은 맞지만 리액트와는 독립적으로 동작하는 문법이다. JSX는 ECMAScript 자바스크립트 표준의 일부는 아니기 때문에 코드를 바로 실행하면 에러가 발생한다. 그렇기 때문에 JSX는 반드시 트랜스파일러를 거쳐야 JS 런타임이 이해할 수 있는 JS 코드로 변환 된다. JSX는 HTML이나 XML을 JS 내부에 표현하는 것이 유일한 목적은 아니며 JSX 내부에 트리 구조로 표현하고 싶은 다양한 것들을 작성해 두고, JSX를 트랜스파일 과정을 거쳐 JS가 이해할 수 있는 코드로 변경하는 것이 목적이다. JSX의 정의JSX는 기본적으로 JSXEle..
문제https://www.acmicpc.net/problem/2003 풀이투포인터의 기본 문제이며, 주어지는 수열에서 연속된 수들의 합이 M이 되면 카운트를 올리는 문제이다. 이 문제에서 while 문을 이용해 반복해주는 부분이 있는데, 이 while 문의 조건에 원래는 lp 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n');const [n, m] = input.shift().split(' ').map(Number);const arr = input[0].split(' ').map(Num..
이전 시간에는 라즈베리파이(이하 라파)에 DB(MariaDB)를 연결했다. 이제 nodejs를 설치하고 React 애플리케이션을 배포해보도록 하자. NodeJS 설치NodeSource의 레포지토리를 이용해 최신 버전의 Node.js를 설치할 수 있다.curl -sL https://deb.nodesource.com/setup_20.x | sudo bash - 위의 코드에서 setup_[숫자].x 의 숫자는 설치하고자 하는 Nodejs의 버전을 의미하며 이 글 아래에서는 Nodejs 버전을 업그레이드 혹은 다운그레이드 하는 방법을 정리할 것이다. 이제 Nodejs를 설치해보자.sudo apt install nodejs 설치가 끝났다면 설치된 Nodejs의 버전을 확인해보자.node --version pm2..