본문 바로가기

전체 글54

[10026] 적록색약 javascript https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 나는 같은 색이면 dfs를 수행하고 적록색이면 한 번 더 dfs를 수행하는 방식으로 풀었다. 코드 const fs = require('fs'); const PATH = process.platform === 'linux' ? '/dev/stdin' : './baekjon/input.txt'; const input = fs.readFileSync(PATH).toString().trim().sp.. 2023. 4. 1.
자바스크립트 This 이걸로 끝내기 This란? 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. 객체 리터럴에서 this는 자기 자신을 가리킴 const circle = { radius: 5, getDiameter() { return 2 * circle.radius; }, }; console.log(circle.getDiameter()); // 10 생성자 함수 내부의 this는 생성자 함수가 생성할 인스턴스를 가리킴 function Circle(radius) { this.radius = radius; } Circle.prototype.getDiameter = function () { return 2 * thi.. 2023. 3. 28.
Iteration Protocol(for of, spread) 자바스크립트를 사용하다 보면 자연스럽게 [... arr]처럼 스프레드 연산자를 사용한다. 그게 왜 가능 할까? 한번 알아보자. 이터레이션 프로토콜(Iteration Protocol) 이터레이션 프로토콜이란? 반복, 순회를 하기 위해서 따르는 규격, 약속, 인터페이스이다. 이 프로토콜을 따르면 for of나 spread 연산자를 사용 가능 하다. 자바스크립트에서는 Array, String, Map, Set이 녀석들이 이 프로토콜을 따른다. 그럼 이 이터레이션을 따르는 것은 뭘까? 그건 Iterable, Iterator 프로토콜을 따르면 된다. 간단하다. 아래 두 가지만 기억하면 된다. 더보기 Iterable: Iterator을 리턴하는 [Sysmbol.iterator]()을 가진 값 Iterator: ne.. 2023. 3. 21.
[NVM] 프로젝트마다 노드 버전을 다르게 설정해주고 싶을 때 예전에 만든 프로젝트가 노드 버전이 안 맞아서 실행이 안된다. NVM이란? Node Version Manager의 약자로 노드 버전을 관리해주는 애다. 1. brew로 nvm을 설치하자 brew install nvm 2. mkdir ~/.nvm로 폴더를 만들다 mkdir ~/.nvm 3. 환경변수 설정을 해줘야 된다. 맞는 쉘로 작성하면 된다. vi ~/.zshrc #zsh 사용자는 이걸 vi ~/.bash_profile #bash 사용자는 이걸 4. 편집기가 열리면 아래코드를 복사해서 맨 밑에 붙여준다. export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash.. 2023. 3. 19.