분류 전체보기
백준 / 구현 / 16967번 / 배열 복원하기 / JS
16967번: 배열 복원하기 크기가 H × W인 배열 A와 두 정수 X와 Y가 있을 때, 크기가 (H + X) × (W + Y)인 배열 B는 배열 A와 배열 A를 아래로 X칸, 오른쪽으로 Y칸 이동시킨 배열을 겹쳐 만들 수 있다. 수가 겹쳐지면 수가 합쳐 www.acmicpc.net const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; const input = fs.readFileSync(filePath).toString().split('\n'); /** * H: A의 세로, W: A의 가로, X: 밑으로 움직인 칸 수, Y: 오른쪽으로 움직인 칸 수 ..
백준 / 백트래킹 / 18429번 / 근손실 / JS
18429번: 근손실 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 www.acmicpc.net const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt'; const input = fs.readFileSync(filePath).toString().split('\n'); const [N, K] = input.shift().split(' ').map(Number); const WEIGHT_LIST = i..
백준 / 그래프 / 1189번 / 컴백홈 / JS
1189번: 컴백홈 첫 줄에 정수 R(1 ≤ R ≤ 5), C(1 ≤ C ≤ 5), K(1 ≤ K ≤ R×C)가 공백으로 구분되어 주어진다. 두 번째부터 R+1번째 줄까지는 R×C 맵의 정보를 나타내는 '.'과 'T'로 구성된 길이가 C인 문자열이 주어진다 www.acmicpc.net const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt'; const input = fs.readFileSync(filePath).toString().split('\n'); const [R, C, K] = input.shift().split(' ').map(Number); c..
백준 / 그리디 / 1744번 / 수 묶기 / Java
1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net package BOJ.Greedy; import java.io.*; import java.util.*; public class _1744 { private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(Sy..
일급객체, 일급함수
1. 일급 객체란? 일급 객체란, 다음과 같은 조건을 만족하는 개체를 말한다. 변수나 데이터 구조 안에 담을 수 있다. 파라미터로 전달될 수 있다. 반환값으로 사용할 수 있다. 동적으로 프로퍼티 할당이 가능하다. 2. 일급 함수란? 일급 함수란, 일급 객체의 조건을 만족하는 함수를 의미한다. JS 에서는 함수가 일급 객체이다. 그 말은, JS에서는 다음과 같은 작업들이 가능하는 의미이다. 함수를 변수나 데이터 구조 안에 담을 수 있다. 함수는 파라미터로 전달될 수 있다. 함수는 반환값으로 사용할 수 있다. 사실 이렇게 글로 보면 이해가 잘 가지 않을 수도 있다. 하지만 JS를 사용해 코드를 짜본 사람이라면 어쩌면 이미 위의 개념들을 사용하고 있을 수도 있다. 각각의 예시를 보자. 1) 함수를 변수나 데이..
호이스팅(Hoisting)
1. 호이스팅이란? [ MDN - Hoisting ] 호이스팅 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN 자바스크립트 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 이동시키는 과정을 말합니다. developer.mozilla.org 위 MDN 사이트에 따르면 호이스팅은 "인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 이동시키는 과정" 이라고 한다. 위 정의를 읽고 "아 그냥 변수나 함수들을 맨 위에 갖다놓고 사용하는거구나~" 라고 생각하고 넘어갈 수도 있다. (나도 그랬다...) 하지만 '선언문' 이라는 키워드를 굳이 넣어야 했을까? 라는..