백준 알고리즘(16)
-
[백준 알고리즘] Node.js 1312. 소수
1. 문제 https://www.acmicpc.net/problem/1312 1312번: 소수 피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다. www.acmicpc.net 2. 풀이 - 문제에서 소수점 아래 n번째 수를 출력하라고 하였는데 n 은 1 부터 1,000,000까지의 숫자가 주어진다. 일반적인 경우로는 100만번째까지 나타낼 수 없기 때문에 나눗셈을 하는 방식으로 풀어야한다 ex) 입력 a = 25, b = 7, n = 5 일 경우, 출력 : 2 case 1) 1번째 나누기 : 25 % 7 = 4 → 4 * 10 = 40 → 40 / 7 =..
2023.03.27 -
[백준 알고리즘] Node.js 1308. D-Day
1. 문제 https://www.acmicpc.net/problem/1308 1308번: D-Day 첫째 줄에 오늘의 날짜가 주어지고, 두 번째 줄에 D-Day인 날의 날짜가 주어진다. 날짜는 연도, 월, 일순으로 주어지며, 공백으로 구분한다. 입력 범위는 1년 1월 1일부터 9999년 12월 31일 까지 이다. www.acmicpc.net 2. 풀이 1) 오늘날짜에 해당하는 모든 날과 D-Day에 해당하는 모든 날을 계산한다. 2) 이 때, 윤년에 해당하는 해의 2월은 "29일" 이 된다. 3) 문제에서 캠프가 천년이상 지속될 경우, gg를 출력하도록 만든다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split(..
2023.03.23 -
[백준 알고리즘] Node.js 1834. 나머지와 몫이 같은 수
1. 문제 https://www.acmicpc.net/problem/1834 1834번: 나머지와 몫이 같은 수 N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다. www.acmicpc.net 2. 풀이 1) 나머지와 몫이 같은 숫자를 찾는 문제이다. 2) N=3일때, 4 / 3 = 1, 4 % 3 = 1 이므로 4, 8 / 3 = 2, 8 % 3 = 2 이므로 8 이 해당되어 두 값을 더하면 12. 3) 패턴을 찾아보면 N=2일때, 3 N=3일때, 4 + 8 = 12 N=4일때, 5 + 10 + 15 = 30 N=5일때, 6 + 12 + 18 + 24 = 60..
2023.03.21 -
[백준 알고리즘] Node.js 1551. 수열의 변화
1. 문제 https://www.acmicpc.net/problem/1551 1551번: 수열의 변화 첫째 줄에 수열의 크기 N과 K가 주어진다. N은 20보다 작거나 같은 자연수이고, K는 0보다 크거나 같고, N-1보다 작거나 같은 정수이다. 둘째 줄에는 수열이 ‘,’로 구분되어 주어진다. 수열을 이루 www.acmicpc.net 2. 풀이 - 문제에서 크기가 n인 수열을 통하여 만든 새로운 수열을 만들고, 만들어진 수열을 통하여 다시 수열을 만드는 방법으로 k번 반복하였을 때 만들어진 수열을 구하는 문제이다. - k가 0일 경우에는 입력 값 그대로 출력하면 된다. const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().sp..
2023.03.20 -
[백준 알고리즘] Node.js 1526. 가장 큰 금민수
1. 문제 https://www.acmicpc.net/problem/1526 1526번: 가장 큰 금민수 첫째 줄에 N이 주어진다. N은 4보다 크거나 같고 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 풀이방법 1) 4와 7로 이루어진 수 중 가장 큰 수를 찾기 위해 입력받은 숫자부터 내려가는 방식으로 생각. 2) 이후 자리 수 별로 잘라서 그 숫자가 4 또는 7인지 확인하고 새로운 배열에 true, false로 담아둠. 3) 배열에 false 가 없다면 그 숫자가 가장 큰 숫자이기 때문에 반복문을 멈추고 출력! const inputs = +require('fs').readFileSync('/dev/stdin').toString().trim(); let answer =..
2023.03.16