전체 글

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr핵심 아이디어카운팅 객체 만들기tangerineSizes[size]: 현재 요소의 개수를 가져온다.|| 0: 해당 요소가 아직 등장하지 않은 경우, 기본값 0을 설정한다.+ 1: 현재 요소의 개수를 1 증가시킨다.for (const size of tangerine) { tangerineSizes[size] = (tangerineSizes[size] || 0) + 1;}정답function solution(k, tangerine) { let tangerineSizes = {}; let totalCount = 0; let answer = 0; for..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr핵심 아이디어left와 right 포인터를 사용하여 배열의 양끝에서 접근한다.조건 확인: people[left]와 people[right]의 합이 limit 이하인 경우 두 사람을 한 번에 태운다. 그렇지 않으면 left에 해당하는 무거운 사람만 태운다.left++와 right--로 배열의 범위를 줄여 나가면서 필요한 보트의 개수를 최소화한다.left 정답function solution(people, limit) { people.sort((a, b) => b - a); let answer = 0; let left = 0; let right = p..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr핵심 아이디어탐욕법(Greedy Algorithm)은 문제를 해결할 때 각 단계에서 그 순간에 최선이라고 생각되는 선택을 하는 방법이다. 매 선택이 문제 전체의 최적해로 이어진다고 가정하고 진행하는 방식이다.스택을 이용해 주어진 숫자를 앞자리에서부터 하나씩 비교해가며 큰 것만 남긴다.정답 자리수까지 해당 작업을 반복하고 남은 숫자를 문자열로 바꾼다.스택에서 필요한 숫자만 남겨 최종적으로 k개만큼 제거된 결과를 반환한다.정답function solution(number, k) { let stack = []; for (const num of number)..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr정답// dfs 사용 Xfunction solution(k, dungeons) { let answer = []; // 탐험한 던전들을 저장하는 배열 (탐험 횟수를 세기 위한 용도) while (k > 0) { // 현재 피로도가 0보다 큰 동안 반복 // 각 던전마다 [최소 필요 피로도, 탐험 가능한 던전 수, 던전 인덱스] 배열을 생성 const choices = dungeons .map((dungeon, index) => { const [minFatigue, consumeFatigue] = dungeon; // 던..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr핵심 아이디어다리를 나타내는 배열을 길이만큼 0으로 초기화한다.현재 다리 위 트럭들의 무게를 추적하는 변수를 0으로 설정한다.전체 경과 시간을 추적하는 변수를 0으로 설정한다.모든 트럭이 다리를 건너거나 현재 다리 위에 트럭이 없을 때까지 반복문을 실행한다.매 반복마다 1초가 증가한다.다리에서 가장 앞에 있는 트럭(또는 0)을 제거하고 그 트럭의 무게를 현재 무게에서 뺀다.대기 중인 트럭이 남아 있고, 현재 다리 위 트럭들의 무게 합과 대기 중인 첫 번째 트럭의 무게를 더했을 때 허용 무게 이하이면 그 트럭을 다리로 옮긴다.그렇지 않으면 0을 다리에 추..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr핵심 아이디어결과 배열 초기화: answer 배열을 prices 길이만큼 0으로 초기화한다.스택을 사용한 가격 비교: 주식 가격을 순차적으로 탐색하며, 이전 가격과 비교하기 위해 인덱스를 스택에 저장한다.가격이 하락할 때 처리: 현재 주식 가격이 스택에 저장된 이전 주식 가격보다 낮으면, 스택에서 인덱스를 꺼내고, 그 차이를 계산해 answer 배열에 기록한다.남은 스택 처리: 스택에 남아 있는 인덱스들은 끝까지 가격이 떨어지지 않은 경우로, 그 차이를 계산해 answer 배열에 기록한다.결과 반환: 모든 계산이 완료된 후 answer 배열을 반환한다...
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr핵심 아이디어입력 배열을 순차적으로 탐색: i를 사용해 배열을 처음부터 끝까지 순회.중복 제거: 현재 값과 스택의 마지막 값을 비교해, 중복이 아닐 때만 스택에 추가.스택 사용: 중복되지 않은 값을 stack.push()로 스택에 쌓고, 조건에 따라 추가하지 않음.최종 결과 반환: 중복된 값들이 제거된 stack을 반환.정답function solution(arr) { let stack = []; let i = 0; while (i
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr핵심 아이디어각 프로세스의 우선순위와 인덱스를 객체로 저장해 큐를 생성한다.큐는 먼저 들어온 프로세스가 먼저 처리되는 선입선출(FIFO) 방식으로 작동한다.큐에서 첫 번째 프로세스를 꺼낸 후, 남은 프로세스 중 더 높은 우선순위가 있는지 some 메서드를 사용해 확인한다.더 높은 우선순위의 프로세스가 있으면 꺼낸 프로세스를 다시 큐에 넣는다.더 높은 우선순위가 없으면 해당 프로세스를 실행하고, 실행 순서를 기록한다.기록된 실행 순서 중에서 원하는 location의 프로세스가 몇 번째로 실행되었는지 반환한다.정..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr핵심 아이디어논문 인용 횟수를 내림차순으로 정렬한다.정렬된 배열에서 인덱스와 해당 인덱스의 인용 횟수를 비교한다.인용 횟수가 인덱스보다 큰 경우에만 h-index 후보를 증가시킨다.조건을 만족하지 않는 시점에서 h-index 값을 반환한다.정답function solution(citations) { citations.sort((a, b) => b - a); let answer = 0; while (answer
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr핵심 아이디어정렬 기준: 숫자 a, b에 대해 String(a) + String(b)와 String(b) + String(a)를 비교하고, localeCompare를 사용하여 더 큰 쪽이 먼저 오도록 정렬한다.최종 결과: 정렬된 숫자 배열을 문자열로 변환해 이어 붙여 가장 큰 수를 만든다.예외 처리: 배열에 있는 모든 숫자가 0일 때는 "0"을 반환한다.정답function solution(numbers) { numbers.sort((a, b) => { const order1 = String(a) + S..