본문 바로가기

알고리즘119

[프로그래머스 lv2] 할인 행사 https://school.programmers.co.kr/learn/courses/30/lessons/131127 첫번째 풀이 (성공) 10개씩 나눈 뒤에 (주의 hash[a] = (hash[a] || 0) + 1); // 원하는 품목과 선택된 품목의 갯수 비교 for (const [key, value] of Object.entries(hash)) { if (!obj[key] || hash[key] !== obj[key]) { return false; } } return true; } for (let i = 0; i { obj[w] = number[i]; }) const window = {}; for (let i = 0; i < 10; i++) { const curr = discount[i]; wind.. 2023. 10. 9.
[스택] 뒤에 있는 큰 수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/154539 가장 가까이 있는 => 스택 첫풀이 (시간초과) 배열 모든 원소를 -1로 초기화 뒤에서부터 numbers 순회 stack에 numbers의 뒷 부분부터 넣고 뒤에서부터 순회하면 가장가깝고 큰수를 찾는다 // 뒤에서부터 // curr -1); const stack = [numbers[numbers.length-1]]; for (let i = numbers.length-1; i >= 0 ; i--) { const.. 2023. 10. 8.
[스택, 그리디] 큰 수 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/42883# 첫풀이 (런타임에러 12번 케이스) 앞에서부터 k개를 제거해야하므로 앞에서부터 순회한다 앞의수(a)와 뒤의 수(b)를 비교해서 a 1 1->2 2->3 3->4 while (r.. 2023. 10. 8.
[프로그래머스 lv2] 택배상자 JS https://school.programmers.co.kr/learn/courses/30/lessons/131704 문제요점 1번부터 n번까지 증가하는 순으로 벨트에 놓여있다. 1번부터 순서대로 상자를 내릴 수 있다. 현재 실을 순서가 아니면 보조컨테이너에 보관 => 보조컨테이너는 마지막에 보관한 상자부터 꺼내게 된다 stack 보조를 사용해도 순서대로 싣지 못하면 더이상 상자를 싣지 않는다 실을 수 있는 상자 갯수 리턴 풀이 기존의 상자 순서대로 진행할 때, 다음상자와 보조컨테이너의 마지막 상자를 체크한다 O(nlogn) 상자를 1부터 n개까지 순회하며 현재 실어야하는 순서인지 확인한다 컨테이너벨트에 상자가 있으면 옮기고 보조컨테이너벨트(stack)의 마지막에 상자가 있으면 stack의 마지막 상자를 .. 2023. 10. 6.
[프로그래머스 LV2] 호텔 대실 JS https://school.programmers.co.kr/learn/courses/30/lessons/155651 문제요점 10분청소 후 다음 사용가능 필요한 최소객실수는? 풀이 분으로 변환 시작시각 오름차순 각 방마다 입실 가능한 시각을 저장하는 배열 canEnterTimes을 시각 오름차순정리 첫번째방 추가 (이때 10분의 청소시간도 플러스) 다음 방부터 순회를 돌며 들어 갈 수 있는 방이 없는 경우 (현재 예약의 입실 시각 < 가장 빠른 입실 가능한 시각) 방추가 현재 입실하는 방의 다음 입실 가능시각 canEnterTimes에 추가 (+ 10 청소시간) canEnterTimes 가장 빨리 입실 가능한 시각 오름차순으로 갱신 들어 갈 수 있는 방이 있는 경우 canEnterTimes에서 첫번째 제.. 2023. 10. 4.
[크루스칼] 섬 연결하기 크루스칼 알고리즘이란 가장 적은 비용으로 모든 노드를 연결하기 위해 사용하는 알고리즘이다. 최소비용신장 트리를 만들기 위한 대표적 알고리즘으로 그래프에서 모든 노드를 연결할때 적용된다. 1. 우선 비용 오름차순으로 정렬한다. 2. 작은 비용의 선부터 연결하면서 Union find를 통해 신장트리가 되는지 확인한다 이때 이미 연결된 노드는 연결하지 않고 스킵한다 3. 모든 노드의 부모가 통일되면 최소비용신장트리가 완성된다. https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. pro.. 2023. 9. 25.