본문 바로가기

전체 글178

[프로그래머스 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.
[hash, 이진탐색 LV2] 시소 짝꿍 JS https://school.programmers.co.kr/learn/courses/30/lessons/152996 문제요점 4,3,2 축 2,3,4 시소짝꿍: 몸무게*거리가 같으면 몇쌍 짝꿍존재? (보충) 짝꿍끼리의 순서는 상관없다. (시소의 오른쪽, 왼쪽 중 어디에 앉는지는 구별하지 않음) 풀이 2,3,4를 통해 가능한 조합을 만든다 짝꿍끼리의 순서는 상관없으므로 왼쪽무게 중심으로 가능한 오른쪽 무게를 찾고 그 갯수를 더한다 왼쪽 중심으로 가능한 오른쪽무게는 왼쪽무게의 *1, *3/2, *2, *4/3이다 왼쪽이 2, 오른쪽 2일때 => 1:1 => 오른쪽은 왼쪽의 1배 왼쪽이 2, 오른쪽 3일때 => 2:3 => 오른쪽은 왼쪽의 3/2배 왼쪽이 2, 오른쪽 4일때 => 1:2 => 오른쪽은 왼쪽의 .. 2023. 10. 4.
[프로그래머스 LV2] 호텔 대실 JS https://school.programmers.co.kr/learn/courses/30/lessons/155651 문제요점 10분청소 후 다음 사용가능 필요한 최소객실수는? 풀이 분으로 변환 시작시각 오름차순 각 방마다 입실 가능한 시각을 저장하는 배열 canEnterTimes을 시각 오름차순정리 첫번째방 추가 (이때 10분의 청소시간도 플러스) 다음 방부터 순회를 돌며 들어 갈 수 있는 방이 없는 경우 (현재 예약의 입실 시각 < 가장 빠른 입실 가능한 시각) 방추가 현재 입실하는 방의 다음 입실 가능시각 canEnterTimes에 추가 (+ 10 청소시간) canEnterTimes 가장 빨리 입실 가능한 시각 오름차순으로 갱신 들어 갈 수 있는 방이 있는 경우 canEnterTimes에서 첫번째 제.. 2023. 10. 4.