Two Sum
·
CS/코딩 테스트
코딩테스트 문제https://leetcode.com/problems/two-sum/ 정답 및 해설var twoSum = function(nums, target) { let answer = []; // 반복문으로 찾기 for (let i = 0; i
모음 사전
·
CS/코딩 테스트
코딩테스트 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근)A E I O U 알파벳 모음으로 주어진 word가 나올 때 까지 사전에서 몇번째까지 나오는지 찾는 문제이므로 여러 알고리즘으로 풀 수 있지만 완전탐색 알고리즘으로 풀어도 됩니다. 완전탐색은 재귀호출과 반복문을 이용하여 풀면 됩니다. 정답 및 해설function solution(word) { const dictionary = ["A", "E", "I", "O", "U"]; // 사전 알파벳 모음 정의 let answer = []; // 조합된 단어들 저장 let toggle = false; // 찾는 단어를 탐색 ..
모의고사
·
CS/코딩 테스트
코딩테스트 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 접근)완전탐색에는 여러 접근 알고리즘 방식이 있는데 해당 문제는 수포자가 찍는 정답이 얼마나 많이 맞는지를 보는 것이므로 하나씩 확인하면서(brute force)방식으로 체크하면 된다정답 및 해설function solution(answers) { let result = []; let saram1 = [1,2,3,4,5]; let saram2 = [2,1,2,3,2,4,2,5]; let saram3 = [3,3,1,1,2,2,4,4,5,5]; const saram1C = answers.filter((ans..
프로세스
·
CS/코딩 테스트
코딩테스트 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근)해당 location에 위치한 프로세스가 프로세스 우선순위로 실행 됐을 떄 몇번째에 실행되는지 체크하는 것이므로 우선순위가 높 -> 낮은 순서대로 큐를 이용하여 해결하면 됩니다. 정답 및 해설function solution(priorities, location) { let answer = 0; // location이 위치한 프로세스가 몇번째로 실행되는지의 값 /* location이 인덱스에 위치인데 우선순위별로 정렬하다보면 priorities의 위치가 뒤죽박죽되므로, 해당 인덱스 정렬되어있는 ..
다리를 지나는 트럭
·
CS/코딩 테스트
코딩테스트 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근)bridge_length 10^4, weight의 무게는 상관이 없으므로 생략, truck_weights는 10^4 이므로 10^8이므로 시간복잡도는 O(N)이하의 알고리즘으로 해결해야 합니다. 정답 및 해설function solution(bridge_length, weight, truck_weights) { /* 대기 트럭들이 있고, 하나씩 다리를 건너며 먼저 건너는 트럭들이 먼저 다리를 지나므로 큐 알고리즘을 이용하여 푸는 문제입니다. 대기 트럭의 큐와 다리를 건너는 큐 두개의 큐..
주식가격
·
CS/코딩 테스트
코딩테스트 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근)prices의 길이가 2이상 10^5이므로 시간복잡도 O(N^2)미만의 알고리즘으로 해결하면 됩니다. 정답 및 해설function solution(prices) { let stack = []; for (let i = 0; i prices[j]) { // 배열을 돌면서 prices[i]보다 가격이 낮으면 가격이 떨어진 것이므로 반복문 종료 break; } } stack.push(count); // 가격이 떨어진 초를 count로..
올바른 괄호
·
CS/코딩 테스트
코딩테스트 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근)'('문자로 열려있으면 짝지어서 ')' 문자로 닫혀야 하므로 스택의 ( )의 인접한 한쌍이 있으면 제거하면 됩니다.문자열의 길이 10^5이므로 시간 복잡도 O(N^2)미만의 알고리즘으로 해결하면 됩니다. 정답 및 해설function solution(s) { let stack = []; if (s[0] === ")") return false; // ')' 닫는게 먼저 시작되면 '('')' 짝지어서 스택에서 없앨수 없으므로 false for (let i = 0; i
기능개발
·
CS/코딩 테스트
코딩테스트 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근)개발속도가 다르고, 배포시에 몇개의 기능이 배포되는지를 묻는 문제이므로, 스택의 알고리즘 접근법으로 해결하면 됩니다. 정답 및 해설정답 및 해설function solution(progresses, speeds) { let answer = [0]; // 결과값 저장할 변수 // 작업 후 배포 가능한 날짜 구하기 const remainDays = progresses.map((progress, idx) => Math.ceil((100 - progress) / speeds[idx])) // 비교할 대상 날짜 하나 ..
H-Index
·
CS/코딩 테스트
코딩테스트 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근)논문의 수가 10^3 편 이하이므로 시간복잡도는 O(N^3)미만의 알고리즘으로 해결하면 됩니다. 정답 및 해설정답function solution(citations) { let answer = 0; citations.sort((a, b) => b-a); for (let i = 0; i answer) { answer += 1; } } return answer;}해설 h-index - WikipediaFrom Wikipedia, the free encyclope..
가장 큰 수
·
CS/코딩 테스트
코딩테스트 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 접근)numbers의 길이 10^5 이하 이므로 시간복잡도 O(N^2) 미만의 알고리즘으로 풀면 됩니다 (이중 for문 X) 정답 및 해설정답function solution(numbers) { const result = numbers.map(String).sort((a, b) => { return (b+a) - (a+b) }).join('') return result[0] === '0' ? '0' : result;} 해설1. 일단 처음에 numbers.map(String)으로 숫자를 문자로 변환합니다..