Algorithm50 백준 1978번 백준 1978번을 풀어보았다. 앞선 비슷한 유형들과 동일하게, 크게 두 가지 방법으로 풀이할 수 있다. 참고) 백준 2501번, 백준 9506번 1부터 input[i]까지 확인하기let [N, input] = require('fs').readFileSync('/dev/stdin').toString().split('\n')N = Number(N)input = input.split(' ').map(Number)let output = 0for (let i = 0; i 1부터 input[i]의 제곱근까지 확인하기let [N, input] = require('fs').readFileSync('/dev/stdin').toString().split('\n')N = Number(N)input = input.split.. 2025. 1. 17. 백준 9506번 백준 9506번을 풀어보았다. 다양한 풀이가 존재하는데, 크게 약수 구하기, 배열의 합 구하기, 배열 출력하기 측면에서 구분해볼 수 있다. 1. 약수 구하기1부터 n까지 확인1부터 n/2까지 확인1부터 n의 제곱근까지 확인2. 배열의 합 구하기반복문 이용reduce 메소드 이용3. 배열 출력하기반복문과 조건문 이용join 메소드 이용 1. 약수 구하기 1부터 n까지 확인let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(Number)let output = ''for (const n of input) { if (n === -1) break let sum = 0, divisors = [] for (let i = .. 2025. 1. 17. 백준 2501번 백준 2501번을 풀어보았다. 약수를 구하는 간단한 문제로, 크게 두 가지 풀이로 구분할 수 있다.1부터 N까지 확인해보기1부터 N의 제곱근까지 확인해보기 1부터 N까지 확인해보기let [N, K] = require('fs').readFileSync('/dev/stdin').toString().split(' ').map(Number)let cnt = 0, output = 0for (let i = 1; i 위 코드에선 K번째가 되면 반복을 종료하고 바로 정답을 출력하도록 했지만 반복을 끝까지 수행하여 모든 약수를 배열에 저장한 뒤 K-1번째 요소를 출력할 수도 있다. 1부터 N의 제곱근까지 확인해보기let [N, K] = require('fs').readFileSync('/dev/stdin').toStr.. 2025. 1. 16. 백준 5086번 백준 5086번을 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.trim())for(const i of input) { if (i === '0 0') break const [A, B] = i.split(' ').map(Number) let output = '' if (B % A === 0) output = 'factor' else if (A % B === 0) output = 'multiple' else output = 'neither' console.log(output)} 간단한 문제이지만, 처음에는 const [A, B] = i.split(' ') 으로.. 2025. 1. 13. 백준 2869 백준 2869번을 풀어보았다. 올라간 후에도 V보다 작다면 필연적으로 밤을 지내며 B만큼 미끄러지게 되므로 올라간 것을 기준으로 생각하였다. 즉 첫째 날에는 A만큼, 둘째 날에는 -B+A만큼, 셋째 날에도 -B+A만큼 올라간다. 시간 제한이 있는 문제로, 처음에는 단순한 반복문으로 풀었다가 시간 초과가 나왔다.let [A, B, V] = require('fs').readFileSync('/dev/stdin').toString().split(' ').map(Number)let day = 1, distance = Awhile (true) { if (distance >= V) { break } day += 1 distance = distance - B + A}console.log(day)더보기wh.. 2025. 1. 10. 백준 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. 이전 1 2 3 4 ··· 9 다음