Study/Algorithm

    [BEAKJOON / node.js] 10816 숫자 카드 2

    [BEAKJOON / node.js] 10816 숫자 카드 2

    https://www.acmicpc.net/problem/10816 //test.txt 10 6 3 2 10 10 10 -10 -10 7 3 8 10 9 -5 2 3 4 5 -10 sol1 let input = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let N = input[1] .split(' ') .map(Number) .reduce((acc,cur) => { acc[cur] = (acc[cur]||0) + 1; return acc },{}); let M = input[3] .split(' ') .map(Number) .map(v => N[v] ? N[v] : 0) .join(' '); console.log(M); ..

    [BEAKJOON / node.js] 11659 구간 합 구하기 4

    [BEAKJOON / node.js] 11659 구간 합 구하기 4

    https://www.acmicpc.net/problem/11659 //test.txt 5 3 5 4 3 2 1 1 3 2 4 5 5 sol1 - 메모리 초과 let input = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let nums = input.map(v => v.split(' ').map(Number)); function solution(nums) { let answer = ''; for(let i = 2;i acc+cur,0); answer += `${arr}\n` } return answer }; console.log(solution(nums)); // 12 // 9 // 1 입력받는데 제법 고생해서 테스트 ..

    [BEAKJOON / node.js] 1439 뒤집기

    [BEAKJOON / node.js] 1439 뒤집기

    https://www.acmicpc.net/problem/1439 //test.txt 11001100110011000001 sol1 const input = require('fs').readFileSync('test.txt').toString().trim(); function solution(input) { if(input.includes(0) && input.includes(1)) { let toOne = input.split(0).filter(el => el!== '').length; let toZero = input.split(1).filter(el => el!== '').length; return toOne < toZero ? toOne : toZero; } else return 0 }; cons..

    [BEAKJOON / node.js] 2775 부녀회장이 될테야

    [BEAKJOON / node.js] 2775 부녀회장이 될테야

    https://www.acmicpc.net/problem/2775 // test.txt 2 1 3 2 3 sol1 const [cases,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); for (let i = 0; i Array(n + 1).fill(0)); for (let i = 1; i

    <programmers / JavaScript> 신고 결과 받기

    https://programmers.co.kr/learn/courses/30/lessons/92334?language=javascript sol1 let id_list = ["muzi", "frodo", "apeach", "neo"]; let report = ["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"] let k = 2 let userlist = id_list.reduce((result,currentID)=> { result[currentID] = [0,[]]; return result },{}); for(let x of new Set(report)) { let [REPORT_ID,ID] = x.split(' '); userlis..

    <BEAKJOON / node.js> 1181 단어정렬

    <BEAKJOON / node.js> 1181 단어정렬

    https://www.acmicpc.net/problem/1181 //test.txt 13 but i wont hesitate no more no more it cannot wait im yours sol1 let [n,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let arr = input.sort((a,b) => a.length-b.length || a.localeCompare(b)).filter((el,i) => input.indexOf(el) === i); for(let i=0;i a.localeCompare(b, 'fr', {ignorePunctuation: true})); // ['Adieu'..

    [BEAKJOON / node.js] 13305 주유소

    [BEAKJOON / node.js] 13305 주유소

    https://www.acmicpc.net/problem/13305 //test.txt 4 2 3 1 5 2 4 1 sol1 최솟값을 구하듯 오른쪽으로 탐색한다. 더 작은 기름값이 있는 도시가 나올 때까지 현제 도시에서 기름을 채우도록 조건문을 건다. const [n,a,b] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let km = a.split(' ').map(BigInt); let price = b.split(' ').map(BigInt); let answer = 0n; let min = price[0]; for(let i=0;i

    <BEAKJOON / node.js> 11399 ATM

    <BEAKJOON / node.js> 11399 ATM

    https://www.acmicpc.net/problem/11399 // test.txt 5 3 1 4 3 2 sol1 제일 빠른 시간의 합은 돈을 인출하는데 걸리는 시간순으로 오름차순 정렬한 후 시간을 합해주면 된다. 팩토리얼로 계산하는 함수를 만들어보고 싶었는데 한참 고민해도 만들지 못해 결국 이중for문으로 해결하기로 한다.. let [n,...input] =require('fs').readFileSync('test.txt').toString().trim().split('\n'); let arr = input.map(v => v .split(' ') .map(Number) .sort((a,b) => a-b) ); let answer = 0; for(let i=0;i { sum += v; answer..