분류 전체보기85 백준 11005번 백준 11005번을 풀어보았다. 2745번이 N진법 수를 10진법 수로 변환하는 유형이었다면, 11005번은 10진법 수를 N진법 수로 변환하는 유형이다. 각각을 변환하는 과정을 수학적으로 나타내면 다음과 같다. 11005번은 크게 두 가지 풀이로 정리할 수 있다.수학적 풀이toString 메소드 1. 수학적 풀이 아래 두 풀이의 근본적인 접근은 동일하다. 다만 1-2번은 수학적 풀이를 그대로 표현하고 1-1번은 수학적 풀이를 조금 풀어서 표현하였다. 1-1.let [N, B] = require('fs').readFileSync('/dev/stdin').toString().split(' ').map(Number)let exponent = 0while (N >= B ** exponent) { expo.. 2025. 1. 9. 클로저란 무엇인가요? 클로저를 이해하기 위해선 스코프 체인, 렉시컬 환경에 대한 이해가 선행되어야 한다. 차근차근 이해해보자. 스코프 체인JavaScript에서 변수를 검색하는 메커니즘 JavaScript에서는 함수나 블록 내에서 특정 변수를 참조하고자 할 때 현재 스코프부터 상위 스코프로 해당 변수를 검색해나가는데, 이러한 과정을 스코프 체인이라고 한다. 예를 들어 아래와 같은 코드의 경우const globalColor = 'red'function func1() { const func1Color = 'blue' function func2() { const func2Color = 'green' console.log(func2Color) console.log(func1Color) console.log(.. 2025. 1. 2. 백준 2745번 백준 2745번을 풀어보았다. 크게 3가지 풀이로 정리할 수 있다.0~9, A~Z로 케이스 구분 후 계산parseInt 메소드reverse 메소드 1. 0~9, A~Z로 케이스 구분 후 계산 이때 0~9, A~Z로 케이스를 구분하는 방법에 따라 크게 4가지로 구분할 수 있다. 1-1. isNaN 메소드let [N, B] = require('fs').readFileSync('/dev/stdin').toString().split(' ')B = Number(B)let decimal = 0, exponent = 0for (let i = N.length - 1; i >= 0; i--) { let value = 0 if (isNaN(N[i])) value = N[i].charCodeAt() - 55 else .. 2025. 1. 2. 백준 2563번 백준 2563번을 풀어보았다. 처음 풀었을 때는 지나치게 수학적으로만 접근하려고 해서 엄청 헤맸던 문제인데, 색종이가 붙은 격자는 1, 붙지 않은 격자는 0으로 한 뒤 1의 개수만 구하면 된다.let [N, ...input] = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())N = Number(N)input = input.map((value) => value.split(' ').map(Number))let board = new Array(100).fill(null).map(() => new Array(100).fill(0));for (let i = 0; i { r.forEach((c).. 2025. 1. 2. 백준 10798번 백준 10798번을 풀어보았다. 간단한 문제지만 특정 열에 문자가 존재하는지 여부를 다양하게 확인할 수 있었다. 1. input[r]의 길이로 확인let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())let output = ''for (let c = 0; c 2. input[r]의 특정 열의 값으로 확인let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())let output = ''for (let c = 0; c 이때 if (input[r].. 2025. 1. 1. 백준 2566번 백준 2566번을 풀어보았다. 다양한 풀이가 있겠지만 크게 다음으로 구분할 수 있다.입력값을 2차원 배열로 받기반복하며 비교하기 (반복문, forEach)Math.max 메소드 사용하기입력값을 1차원 배열로 받기반복하며 비교하기 (반복문, forEach)Math.max 메소드 사용하기reduce 메소드 사용하기1. 입력값을 2차원 배열로 받기 1-1. 반복하며 비교하기 ① 반복문let input = require('fs').readFileSync('example.txt').toString().split('\n').map((value) => value.trim().split(' ').map(Number))console.log(input)let max = -1, row = 0, column = 0for (l.. 2025. 1. 1. 이전 1 2 3 4 5 6 ··· 15 다음