본문 바로가기

전체 글88

백준 2720번 백준 2720번을 풀어보았다. 간단한 문제이고, 처음 작성한 풀이는 다음과 같다.let [T, ...input] = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(Number)coin = [25, 10, 5, 1]let output = ''for (let i = 0; i  로컬에서 테스트할 때는 정답을 잘 출력하였는데 백준에 제출하니 틀렸다고 나왔다. 질문게시판 글을 참고하여 수정하였다.let [T, ...input] = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(Number)coin = [25, 10, 5, 1]let output = ''for (le.. 2025. 1. 10.
백준 2903번 백준 2903번을 풀어보았다. 간단한 문제이지만 다양한 관점에서 규칙을 표현할 수 있다. 1. 한 변의 점의 개수가 2, 2+(2-1), 3+(3-1), 5+(5-1), 9+(9-1), ... 과 같이 증가한다고 볼 경우 다음과 같이 풀이할 수 있다.let N = require('fs').readFileSync('/dev/stdin').toString()N = Number(N)let dot = 2for (let i = 0; i  2. 한 변의 점의 개수가 2, 2+2^0 + 2+2^1, 2+2^2, 2+2^3, ... 과 같이 증가한다고 볼 경우 다음과 같이 풀이할 수 있다.let N = require('fs').readFileSync('/dev/stdin').toString()N = Number(N)l.. 2025. 1. 9.
진법 관련 유형 백준 2745번, 11005번에서 진법을 변환하는 유형을 풀어보았다. 관련 내용을 한 번에 정리해보고자 한다. 진법을 변환하는 방법은 크게 두 가지로 구분할 수 있다.수학적 풀이메소드 사용 1. 수학적 풀이 N진법을 10진법으로 변환하는 방법과 10진법을 N진법으로 변환하는 방법을 수학적으로 나타내면 다음과 같다.  N진법을 10진법으로 변환하는 유형let [N, B] = require('fs').readFileSync('/dev/stdin').toString().split(' ')B = Number(B)N = N.split('').reverse()let decimal = 0let number = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'for (let i = 0; i  10진.. 2025. 1. 9.
백준 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.