전체 글

전체 글

    [BEAKJOON / node.js] 1744 수 묶기

    [BEAKJOON / node.js] 1744 수 묶기

    https://www.acmicpc.net/problem/1744 //test.txt 4 -1 2 1 3 sol1 let [_,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let arr = input.map(Number); function solution(arr) { let plusArr = arr.filter(el => el>0).sort((a,b) => b-a); let minusArr = arr.filter(el => el a-b); let plusLen = plusArr.length; let minusLen = minusArr.length; let plusAns = ifCase(plusArr,pl..

    [BEAKJOON / node.js] 12904 A와 B

    [BEAKJOON / node.js] 12904 A와 B

    https://www.acmicpc.net/problem/12904 //test.txt B ABBA sol1 - ❌ let [S,T] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let arr = S.split(''); function solution(arr,T) { while(T.length !== arr.length) { arr.push('A'); if(T.length === arr.length) break; arr.reverse().push('B'); arr.push("A"); } return arr.join('') === T ? 1 : 0 }; console.log(solution(arr,T)); //1 S에 문제..

    [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

    [programmers / JavaScript] JadenCase 문자열 만들기

    [programmers / JavaScript] JadenCase 문자열 만들기

    https://programmers.co.kr/learn/courses/30/lessons/12951?language=javascript# sol1 function solution(s) { let answer = ''; let arr = s.split(' ') answer = arr.map(v=>v.toLowerCase()) .map(el => el=== "" ? "" : el.replace(el[0],el[0].toUpperCase())) return answer.join(' ') } 조건중 공백 문자가 연속해서 나올 수 있다는 조건을 해결하는 게 까다로웠다. 공백을 아예 없애버리면 실패 케이스가 나오니 공백은 그대로 두고 첫 글자만 변환해야 했다. sol2 function solution(s) { s..

    [JS] Array vs. Set

    [JS] Array vs. Set

    백준 1920번 문제를 해결하면서 Set과 Array는 속도 차이가 나는지 차이가 난다면 얼마나 나는지, 특정 상황에서 어떤 구조가 더 빠른지 찾아보았다. Set 객체는 Map 객체와 함께 자바스크립트 ES6 버전에서 생긴 기능이다. 속도에 관한 내용을 찾던 도중 Set이 나왔을 당시 성능에 대한 내용과 현재는 어떤 지 알아볼 수 있는 글을 찾았다. 1. Set,Map 등이 처음 나왔을 당시 스택오버플로우에서 첫 요소의 추가, 변경, 삭제에 대해 테스트 케이스를 만들어 수행한 결과를 찾았는데, 일반적으로 Array가 빠르지만 입력받는 숫자가 아주 크다면 delete 메서드를 사용해 요소를 삭제하는 경우에 한하여 Set 이 압도적으로 빠르다는 내용이었다. 하지만 속도를 비교하기에 테스트 케이스가 적절한가에..

    [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 입력받는데 제법 고생해서 테스트 ..