알고리즘 풀이
[JAVASCRIPT] 백준 10798번 문제 풀이
❗ 풀이 let input = require('fs').readFileSync('dev/stdin') .toString() .trim() .split('\n').map(str => str.replace(/\r/g, '')); let maxLength = Math.max(...input.map(i => i.length)); let result = []; for (i = 0; i < maxLength; i++) { for (j = 0; j < input.length; j++) { input[j][i] === undefined ? null : result.push(input[j][i]); } } console.log(result.join('')); 1. Math.max()와 map을 통해 배열 내 문자열 중 ..
[JAVASCRIPT] 백준 1026번 문제 풀이
❗ 풀이 let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n'); const n = parseInt(input[0]); const a = input[1].split(' ').map(Number); const b = input[2].split(' ').map(Number); let sum = 0; a.sort((x, y) => x - y); b.sort((x, y) => y - x); for (let i = 0; i < n; i++) { sum += a[i] * b[i]; } console.log(sum); 1. 첫 번째 줄에 있는 정수값을 n에 저장 2. 두 번째와 세 번째 줄에 있는 문자열을 공백으로 구분하여 숫..
[JAVASCRIPT] 백준 1120번 문제 풀이
❗ 풀이 let [X,Y] = require('fs').readFileSync('dev/stdin').toString().trim().split(" "); let min = Y.length; for (let i = 0; i 길이 차이는 1이 나므로 2번만 반복하면됨 X[0] = a / Y[0] = a , X[1] = b / Y[1] = b , X[2] = c / Y[2] = c 를 하나하나 탐색하며 비교 -> 차이값은 0 다음으로는 abcd를 0,1,2번 인덱스 값을 탐색하였으니 1,2,3번을 탐색함 X[0] = a / Y[1] = b , X[1] = b / Y[2] = c , X[2] = c / Y[3] = d 를 하나하나 탐색하며 비교 -> 차이값은 3 반복문이 끝났을 때 0과 3을 비교했을 때 작은..
[JAVASCRIPT] 백준 1032번 문제 풀이
❗ 풀이 let [N, ...input] = require('fs').readFileSync('dev/stdin').toString().trim().split("\n").map((line)=> line.replace(/\n|\r|\s*/g, "")); let differentPart = ''; for (let i = 0; i str[i] !== char)) { differentPart += '?'; } else { differentPart += char; } } console.log(differentPart); 1. split("\n") 하였을 때 배열내에 문자열에 개행..
[JAVASCRIPT] 백준 4949번 문제 풀이
❗ 조건 조건1. 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다. 조건2. 모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다. 조건3. 모든 오른쪽 괄호들은 자신과 짝을 이룰 수 있는 왼쪽 괄호가 존재한다. 조건4. 모든 괄호들의 짝은 1:1 매칭만 가능하다. 즉, 괄호 하나가 둘 이상의 괄호와 짝지어지지 않는다. 조건5. 짝을 이루는 두 괄호가 있을 때, 그 사이에 있는 문자열도 균형이 잡혀야 한다. ❗ 풀이 let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n'); let compareStr; let compareArray = []; let result = [];..
[JAVASCRIPT] 백준 1302번 문제 풀이
❗ 조건 조건1. 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력 ❗ 풀이 let [n, ...input] = require('fs').readFileSync('dev/stdin').toString().trim().split('\n').sort(); let countObject = {}; input.forEach(element => { countObject[element] == null ? countObject[element] = 1 : countObject[element] += 1 }); let max = Math.max(...Object.values(countObject)); console.log(Object.keys(countObject).find(key => coun..
[JAVASCRIPT] 백준 1439번 문제 풀이
❗ 풀이 let input = require('fs').readFileSync('dev/stdin').toString().trim().split(''); let array0 = []; let array1 = []; let string = ""; function solution(min_num, max_num, array){ for (let i = 0; i < input.length; i++) { if (input[i] === min_num) { string += input[i]; if (input[i + 1] === max_num || input[i + 1] === undefined) { array.push(string); string = ""; } } } } solution("0","1",array0) ..
[JAVASCRIPT] 백준 14425번 문제 풀이
❗ 조건 조건1. 문자열의 길이가 짧은 것부터 조건2. 문자열의 길이가 같으면 사전 순으로 ❗ 풀이 let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n'); const [N, M] = input[0].split(' ').map(Number); const N_data = input.slice(1, 1 + N); const M_data = input.slice(1 + N); let count = 0; const resultObject = {}; N_data.forEach((ele) => (resultObject[ele] = true)); M_data.forEach((ele) => { if (resultObject[el..