Algorithm/Baekjoon55 백준 1193번 백준 1193번을 풀어보았다. 분자, 분모의 합이 동일한 분수들이 대각선으로 같은 줄에 놓여있다는 점을 토대로 번째수와 분자, 분모의 합 간의 관계를 살펴보았다. 1번째 분수는 합이 2, 2~3번째 분수는 합이 3, 4~6번째 분수는 합이 4, 7~10번째 분수는 합이 5이다. 1 = 1 (합 2)3 = 1 + 2 (합 3)6 = 1 + 2 + 3 (합 4)10 = 1 + 2 + 3 + 4 (합 5)... 와 같은 규칙이 있다. 위와 같은 규칙을 토대로 X번째 분수의 분자, 분모의 합(sum)을 구하고 합이 동일한 범위의 마지막 번째(cnt)에서 X번째가 몇 번째 앞인지 구해 구체적인 분자, 분모를 알아낸다.let X = require('fs').readFileSync('/dev/stdin').toStr.. 2025. 1. 10. 백준 2292번 백준 2292번을 풀어보았다. 1번 방은 최소 1개의 방, 2~7번 방은 최소 2개의 방, 8~19번 방은 최소 3개의 방, 20~37번 방은 최소 4개의 방을 지난다. 1 = 1 (최소 1개 방)7 = 1 + 6 * 1 (최소 2개 방)19 = 1 + 6 * 1 + 6 * 2 (최소 3개 방)37 = 1 + 6 * 1 + 6 * 2 + 6 * 3 (최소 4개 방)... 과 같은 규칙이 있다. 위 규칙을 토대로 작성한 코드는 아래와 같다.let input = require('fs').readFileSync('/dev/stdin').toString()input = Number(input)let count = 1, rooms = 1while (true) { if (input > rooms) { ro.. 2025. 1. 10. 백준 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. 이전 1 2 3 4 5 6 ··· 10 다음