본문 바로가기

level223

[프로그래머스][자바스크립트][Level2] 가장 큰 수 /** * 가장 큰 수 * 정렬 * https://programmers.co.kr/learn/courses/30/lessons/42746?language=javascript * */ export function solution(numbers) { const answer = numbers.map((num) => num.toString()).sort((a, b) => { const pre = parseInt(a + b); const post = parseInt(b + a); return post - pre; }).join(""); if (answer[0] === '0') return '0'; return answer; } console.log(solution([6, 10, 2])); console.log(s.. 2022. 1. 4.
[프로그래머스][자바스크립트][Level2] 다리를 지나는 트럭 /** * 다리를 지나는 트럭 * Queue * https://programmers.co.kr/learn/courses/30/lessons/42583 */ class Node { constructor(value){ this.value = value; this.next = null; } } class Queue { constructor(){ this.first = null; this.last = null; this.size = 0; } enqueue(val){ var newNode = new Node(val); if(!this.first){ this.first = newNode; this.last = newNode; } else { this.last.next = newNode; this.last = new.. 2022. 1. 3.
[프로그래머스][자바스크립트][Level2] 프린터 /** * Queue */ class Node { constructor(value){ this.value = value; this.next = null; } } class Queue { constructor(){ this.first = null; this.last = null; this.size = 0; } enqueue(val){ var newNode = new Node(val); if(!this.first){ this.first = newNode; this.last = newNode; } else { this.last.next = newNode; this.last = newNode; } return ++this.size; } dequeue(){ if(!this.first) return null; va.. 2022. 1. 3.
[프로그래머스][자바스크립트][Level2] 소수 찾기 /** * 소수 찾기 * 완전 탐색 * https://programmers.co.kr/learn/courses/30/lessons/42839?language=javascript */ function solution(numbers) { var answer = 0, combination = [], numSet = new Set([]); const nums = numbers.split(""); for (let i = 1; i { getPermutations(comb).forEach((permutation) => { numSet.add(parseInt(permutation.join(""))) }); }); numSet.forEach((num) => { if (primeNumberChecker(parseInt(n.. 2022. 1. 3.
[프로그래머스][자바스크립트][Level2] 카펫 /** * 카펫 - 완전 탐색 * https://programmers.co.kr/learn/courses/30/lessons/42842?language=javascript * 가로 >= 세로 */ /** 1 */ function solution(brown, yellow) { const area = brown + yellow; for (let i = 1; i 2022. 1. 3.
[프로그래머스][자바스크립트][Level2][카카오] 오픈채팅방 function solution(record) { const uidToName = record.reduce((obj, item) => { const itemArr = item.split(" "); if (!obj[itemArr[1]]) { obj[itemArr[1]] = itemArr[2]; } else if (itemArr[0] === "Enter" || itemArr[0] === "Change") { obj[itemArr[1]] = itemArr[2]; } return obj; }, {}); const answer = record.reduce((arr, item) => { const itemArr = item.split(" "); if (state[itemArr[0]]) { arr.push(`${ui.. 2021. 7. 22.
[프로그래머스][자바스크립트][Level2][카카오] 문자열 압축 function solution(s) { if (s.length === 1) return 1; // make data var length = Math.floor(s.length/2); var data = new Array(length).fill(null).map(() => new Array()); for (let i = 1; i { let num = 1; return arr.reduce((acc, char, idx, org) => { if (org[idx+1] === char) { num++; } else { num !== 1 ? acc.push(num, char) : acc.push(char); num = 1; } return acc; }, []).join("").length; }); // return.. 2021. 7. 22.
[프로그래머스][자바스크립트][Level2] 124 나라의 숫자 function solution(n) { var answer = new Array(18).fill(0); var num = n; for (let i = 18; i > -1; i--) { const powNum = Math.pow(3, i); if (i === 0) { answer[i] === num; } if (num >= powNum * 2) { answer[i] = 2; num-=powNum*2; } else if (num >= powNum) { answer[i] = 1; num-=powNum; } } answer.reverse(); while (true) { answer = answer.slice(answer.findIndex(item => item > 0)); if (answer.indexOf(0.. 2021. 7. 21.
[프로그래머스][자바스크립트][Level2] 타겟 넘버 https://programmers.co.kr/learn/courses/30/lessons/43165 function solution(numbers, target) { var answer = {number: 0}; f(numbers, 0, 0, answer, target, "+"); f(numbers, 0, 0, answer, target, "-"); return answer.number; } function f(numbers, idx, result, answer, target, calc) { if (calc === "+") { result += numbers[idx]; } else if (calc === "-") { result -= numbers[idx]; } if (numbers.length - 1.. 2021. 7. 20.
[프로그래머스][자바스크립트][Level2] 짝지어 제거하기 https://programmers.co.kr/learn/courses/30/lessons/12973 function solution(s) { if (s.length % 2 === 1) return 0; var arr = s.split(""); var answer = new Stack(); for (let i = 0; i < s.length; i++) { if (answer.peek() === arr[i]) { answer.pop(); } else { answer.push(arr[i]); } // 이 코드 없으면 2번째 효율성에서 막힘. 질문하기에서 참조함. if(arr.length - i < answer.length) return 0; } return answer.isEmpty() ? 1 : 0; } .. 2021. 7. 20.
[프로그래머스][자바스크립트][Level2] 기능개발 https://programmers.co.kr/learn/courses/30/lessons/42586?language=javascript# 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr function solution(progresses, speeds) { var answer = []; while(progresses.length !== 0) { const x = Math.ceil((100 - progresses[0]) / speeds[0]); let count = 0; for (let i = 0; i.. 2021. 6. 30.