Algorithm/프로그래머스8 2023 현대모비스 예선 - 상담원 인원 https://school.programmers.co.kr/learn/courses/30/lessons/214288 현대 모비스 경진대회 예선 문제가 떠서 그 중 1번 문제를 풀어보았다. 2번은 20점 나옴... 디버깅(?)은 보류 중이다ㅠ 나의 풀이 문제 유형은 구현인 것 같다. 브루트 포스와 정렬을 활용하는? 탑다운 디피? 를 이용해서 각 상담 유형의 멘토수 별 대기 시간을 2차원 배열에 저장했다. 최소 힙😍을 이용해서 최단 대기시간 상담원을 바로 탐색할 수 있도록 했다. 브루트 포스 + dfs 를 이용해서 모든 케이스의 대기 시간 조합을 구현한다. 기존 최소 시간을 초과해버리는 경우는 백트래킹하도록 한다. # 상담 유형 k # 멘토 수 n # 요청 from collections import defa.. 2023. 9. 29. [해시] 베스트앨범 해시 | 베스트앨범 두어 달 전에 풀었던 코드 굉장히 조잡한 절차적 코드...! import java.util.*; import static java.util.stream.Collectors.*; import java.util.LinkedList; class Solution { public int[] solution(String[] genres, int[] plays) { int[] answer = {}; Map map = new HashMap(); int len = genres.length; for (int i = 0; i < len; i++) { ArrayList tmp = map.getOrDefault(genres[i], new ArrayList()); // tmp.add(i); map.put(ge.. 2021. 12. 16. [힙(Heap)] 더 맵게 힙(Heap) - 더 맵게 간단하게 파이썬의 힙을 이용했다. 파이썬의 heapq 모듈은 최소 힙으로만 구현되어 있는데, 이 문제는 최소 힙을 활용하면 되는 거라 간단히 풀이가 가능했다. 여전히 분기를 깔끔하게 잘 하는 건 노력이 필요할 것 같다. import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while (scoville): min1 = heapq.heappop(scoville) if min1 >= K: return answer if not scoville: break else: min2 = heapq.heappop(scoville) temp = min1+min2*2 heapq.heappush(scoville, temp.. 2021. 12. 16. [깊이/너비 우선 탐색(DFS/BFS)] 타겟 넘버 dfs-타겟 넘버 Java class Solution { private int[] numbers; private int len; public int solution(int[] numbers, int target) { this.len = numbers.length; this.numbers = numbers; return dfs(target, 0); } public int dfs(int target, int idx) { if (idx == len && target == 0) { return 1; } else if (idx==len) { return 0; } return dfs(target-numbers[idx], idx+1) + dfs(target+numbers[idx], idx+1); } } Python .. 2021. 12. 7. 이전 1 2 다음