createElement
createElement

전체 글

Algorithm

[백준] 18428 감시 피하기(JS)

18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net https://www.acmicpc.net/problem/14502 연구소 문제와 비슷하다. 백트래킹 문제이며, 장애물을 설치하는 데에는 DFS, 감시를 피할 수 있는지의 여부는 BFS로 풀이하였다. const fs = require('fs'); let [N, ...input] = fs.readFileSync('/dev/stdin').toString().trim().split('\n'); let board = input.map((v) => v.split(..

Algorithm

[백준] 13699 점화식(JS)

13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net 문제는 주어진 점화식을 코드로 작성하는 간단한 문제였으나 3번이나 틀렸다. 결과값의 범위를 생각하지 않아서 틀린 거였다... 모든 값을 BigInt로 계산하니 드디어 정답..! BigInt - JavaScript | MDN **BigInt**는 Number 원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1..

Algorithm

[백준] 11652 카드(JS)

11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net 수가 2의 62제곱까지 주어질 수 있으므로 모든 수를 BigInt로 변환해야 한다. 또한 Map을 사용해 주어진 수와 그에 따른 개수를 저장한다. 정렬은 sort 메서드를 이용하여 다음 코드와 같이 BigInt를 정렬하면 에러가 발생한다. -> 이는 sort 메서드 내부에 직접 비교 조건문을 작성해 해결할 수 있다. const big = [1n, 2n, 3n, 4n]; big.sort((a,b) => a - b); console.log(big); // Err..

Javascript

spread와 rest 비교하기

spread 전개 구문으로 배열에서의 spread 활용과 객체에서의 spread 활용 예제를 통해 이해해보자. [배열] spread spread 연산자를 통해 배열 메서드인 concat, push, unshift 등을 쉽게 구현할 수 있다. let arr1 = [1, 2, 3]; let arr2 = [4, 5, 6]; // result1과 arr1.concat(arr2)는 같은 결과를 갖는다. let result1 = [...arr1, ...arr2]; console.log(result1); // [1, 2, 3, 4, 5, 6] // result2와 arr3.push(10)는 같은 결과를 갖는다. let result2 = [...arr1, 10]; console.log(result2); // [1, 2..

Javascript

프로토타입(Prototype) 이해하기 2

이전 글에서 이어지는 내용입니다. 프로토타입(Prototype) 이해하기 1 프로토타입을 이해하기 위해서는 ES6 클래스 개념이 등장하기 이전, 클래스라는 개념 없이 객체를 생성할 수 있었던 생성자 함수의 이해가 필요하다. 생성자 함수(Constructor functions) 다른 언어의 dmswl98-dev.tistory.com 이전 글의 핵심은 '인스턴스는 생성자 함수의 프로토타입과 연결됨'이었다. 과연 인스턴스는 생성자 함수의 프로토타입과 어떻게 연결될까? 이는 프로토타입 상속과 프로토타입 체인에 의해 설명된다. 아래 글을 모두 읽은 뒤 다시 보길 바란다. 프로토타입 상속(Prototypal inheritance) 이전 글의 코드를 다시 살펴보자. const Animal = function(spec..

Javascript

프로토타입(Prototype) 이해하기 1

프로토타입을 이해하기 위해서는 ES6 클래스 개념이 등장하기 이전, 클래스라는 개념 없이 객체를 생성할 수 있었던 생성자 함수의 이해가 필요하다. 생성자 함수(Constructor functions) 다른 언어의 클래스 개념을 생성자 함수를 통해 구현할 수 있으며 생성자 함수는 다음 조건을 충족해야 한다. 항상 함수명의 첫 글자는 대문자여야 한다. 화살표 함수가 아닌 선언문 함수나 표현문 함수로 작성되어야 한다. 화살표 함수는 자신만의 this를 가지지 않기 때문이다. new 연산자로 생성자 함수를 호출해야 한다. prototype을 이해하기 위해서는 this라는 개념이 필요하다. this를 복습하고 읽는 것을 추천드린다. 'use strict'; const Animal = function(species..