Front-end/알고리즘(82)
-
[백준] 2751. 수 정렬하기 2 (node.js/javascript/자바스크립트/정렬/힙정렬/알고리즘/코딩테스트)
내가 작성한 코드 (자바스크립트) let fs = require("fs"); let input = fs.readFileSync("/dev/stdin").toString().split("\n"); const size = Number(input[0]); class Heap { constructor() { this.items = []; } //swap swap(index1, index2) { let temp = this.items[index1]; this.items[index1] = this.items[index2]; this.items[index2] = temp; } //parentIndex parentIndex(index) { return Math.floor((index - 1) / 2); } //left..
2021.04.29 -
[백준] 1436. 영화감독 숌(node.js/javascript/자바스크립트/알고리즘/코딩테스트)
내가 작성한 코드 (자바스크립트) let fs = require("fs"); let input = fs.readFileSync("/dev/stdin").toString(); const N = Number(input); let current = 666; let count = 0; let answer; while (true) { if (String(current).includes("666")) { count++; if (count === N) { answer = current; break; } } current++; } console.log(answer); 666이 들어가는 숫자를 차례로 나열해보면, 666 - 1666 - 2666 - 3666 - 4666 - 5666 - 6660 - 6661 ... 이렇게..
2021.04.28 -
[백준] 1018. 체스판 다시 칠하기(node.js/javascript/자바스크립트/코딩테스트/브루트포스/완전탐색)
내가 작성한 코드 (자바스크립트) let fs = require("fs"); let input = fs.readFileSync("/dev/stdin").toString().split("\n"); const height = Number(input[0].split(" ")[0]); const width = Number(input[0].split(" ")[1]); const chessboard = []; let answer = 0; for (let i = 1; i { let count = 0; for (let w = i; w
2021.04.28 -
[백준] 2231. 분해합 (브루트포스 알고리즘/완전탐색/자바스크립트/node.js/javascript/알고리즘/코딩테스트)
[백준] 2231. 분해합 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 192 MB 46347 22149 17735 47.722% 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에..
2021.04.27 -
[백준] 2798. 블랙잭 (자바스크립트/node.js/javascript/알고리즘/코딩테스트)
[백준] 2798. 블랙잭 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 58936 26517 20969 44.279% 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 ..
2021.04.27 -
순열과 조합 알고리즘 (자바스크립트/js/javascript)
알고리즘 문제를 풀던 중에, 조합 아이디어를 이용해서 문제를 해결해야 하는 경우가 많이 보이는 것 같아서 이번 시간에는 순열과 조합을 자바스크립트 코드로 작성하는 것에 대해 알아보고자 합니다. 우선 순열과 조합의 정의부터 간단히 알아보겠습니다. 순열 : n개 중에 r개를 뽑아서 순서대로 나열하는 것 예 ) 10P3 = 10*9*8 = 720 조합 : 순서 없이 n개 중에 r개를 뽑는 것 예) 10C3 = 10*9*8 / 3*2*1 = 120 nCr = nCn-r이므로 10C3 = 10C7 1. 조합(Combination) const getCombinations = (array, selectNumber) => { const results = []; if(selectNumber === 1){ return a..
2021.04.26