Algorithm & 자료구조/알고리즘 w.JavaScript

    [알고리즘]백준 1193번: 분수찾기 W_node.js

    문제 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let [X] = fs .readFileSync(readFileSyncAddress) .toString() .trim() .split(' ') .map((v) => +v); const solution = function (n) { let i = 1; // 현재 범위를 계산할 피연산자 let range = 0; // 현재 범위 let strNum = 0; // 분모 or 분자의 시작지점 // n이 범위에 도달할 때까지 while문 실행 while (range < n..

    [알고리즘] 백준 2292번: 벌집 W_node.js

    문제 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let [N] = fs .readFileSync(readFileSyncAddress) .toString() .trim() .split(' ') .map((v) => +v); const solution = function (n) { let i = 1; let range = 1; // n이 범위를 넘어가면 도달한 것. while (range <..

    [알고리즘] 백준 1712번: 손익분기점 W_node.js

    문제 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let [A, B, C] = fs .readFileSync(readFileSyncAddress) .toString() .trim() .split(' ') .map((v) => +v); const solution = function (a, b, c) { // 고정비용 / (판매가 - 가변비용(이익금)) // 나누어 떨어지지 않는 경우가 있..

    [알고리즘] 백준 1316번: 그룹 단어 체커 W_node.js

    문제 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let [N, ...inputs] = fs .readFileSync(readFileSyncAddress) .toString() .trim() .replaceAll(/\r/g, '') .split(/\n/g); const solution..

    [알고리즘] 백준 2941번: 크로아티아 알파벳 W_node.js

    문제 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let str = fs.readFileSync(readFileSyncAddress).toString().trim(); const croatian = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']; const solution = function (str)..

    [알고리즘] 백준 5622번: 다이얼 W_node.js

    문제 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let input = fs.readFileSync(readFileSyncAddress).toString().trim(); const solution = function (str) { let time = 0; for (let x of input) { switch (x) { case 'A': case 'B': case 'C': time += 3; break; case 'D': case 'E': case 'F': time..

    [알고리즘] 백준 1157번: 단어 공부 W_node.js

    문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let S = fs.readFileSync(readFileSyncAddress).toString().trim().toUpperCase(); let str = new Map(); for (let x of S) { if (str.has(x)) str.set(x, str.get(x) + 1); else s..

    [알고리즘] 백준 2675번: 문자열 반복 W_node.js

    문제 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 풀이 const readFileSyncAdd..

    [알고리즘] 백준 4344번: 평균은 넘겠지 W_node.js

    문제 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. - 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let [C, ...testCases] = fs .readFileSync(readFileSyncAddress) .toString() .trim() .replaceAll(/\r/g, '') .split(..

    [알고리즘] 백준 8958번: OX퀴즈 W_node.js

    문제 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 풀이 const readFileSyncAddress = ..