백준

    [BEAKJOON / node.js] 9935 문자열 폭발

    [BEAKJOON / node.js] 9935 문자열 폭발

    https://www.acmicpc.net/problem/9935 //test.txt mirkovC4nizCC44 C4 sol1 let input = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let arr = input[0]; let bomb = input[1]; let bomLen = bomb.length; let stack = []; let top = 0; for(let i=0;i

    [BEAKJOON / node.js] 1920 수 찾기

    [BEAKJOON / node.js] 1920 수 찾기

    https://www.acmicpc.net/problem/1920 // test.txt 5 4 1 5 2 3 5 1 3 7 9 5 sol1 let [_, N, $, M] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let set = new Set(N.split(' ')); let answer = M.split(' ').map(v => set.has(v) ? 1 : 0).join('\n'); console.log(answer); // 1 // 1 // 0 // 0 // 1 Set에 담아서 해당 요소가 있는지 확인하고 출력하면 된다. 처음엔 N 배열을 받아서 바로 includes 메서드를 사용해 일치하는 요소가 있는지 확인했..

    [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> 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..