전체 글(151)
-
[2021 카카오 코딩테스트] 순위 검색 - 자바 java
0. 자세한 설명은 YouTube 영상으로 1. Hash + 이분 탐색을 활용한 solution import java.util.*; class Solution { public int[] solution(String[] info, String[] query) { // 1. info를 기반으로 hashMap 만들기 HashMap hashMap = new HashMap(); for (String i : info) { String[] data = i.split(" "); String[] languages = { data[0], "-" }; String[] jobs = { data[1], "-" }; String[] exps = { data[2], "-" }; String[] foods = { data[3], "..
2021.12.29 -
[2021 카카오 코딩테스트] 메뉴 리뉴얼 - 파이썬
0. 자세한 설명은 YouTube 영상으로 1-1. Hash를 활용한 Solution from itertools import combinations def solution(orders, course): answer = [] # 1. 각 order 정렬 for i in range(len(orders)): orders[i] = "".join(sorted(orders[i])) print(orders[i]) # 2. course_len 마다 조합 생성 for course_len in course: hash = {} max = 0 for order in orders: # 각 Order를 기준으로 courseLength 만큼의 조합 만들기 for comb in combinations(order, course_len..
2021.12.27 -
[2021 카카오 코딩테스트] 메뉴 리뉴얼 - 자바 java
0. 자세한 설명은 YouTube 영상으로 1. Hash를 활용한 solution import java.util.*; class Solution { List answerList = new ArrayList(); Map hashMap = new HashMap(); public String[] solution(String[] orders, int[] course) { // 1. 각 Order 정렬 for (int i = 0; i < orders.length; i++) { char[] arr = orders[i].toCharArray(); Arrays.sort(arr); orders[i] = String.valueOf(arr); } // 2. 각 order를 기준으로 courseLength 만큼의 조합 만들기..
2021.12.22 -
[프로그래머스] 체육복 문제 풀이(탐욕법 Greedy Lv.1) - C++
0. 자세한 설명은 YouTube 영상으로 1-1. Set을 활용한 Solution import java.util.*; class Solution { public int solution(int n, int[] lost, int[] reserve) { // 1. Set을 만든다 HashSet resList = new HashSet(); HashSet losList = new HashSet(); for (int i : reserve) resList.add(i); for (int i : lost) { if (resList.contains(i)) resList.remove(i); else losList.add(i); } // 2. 여분을 기준으로 앞뒤를 확인하여 체육복을 빌려준다. for (int i : res..
2021.12.20 -
[프로그래머스] 체육복 문제 풀이(탐욕법 Greedy Lv.1) - 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1-1. Set을 활용한 Solution def solution(n, lost, reserve): # 1. Set을 만든다 reserve_only = list(set(reserve) - set(lost)) lost_only = list(set(lost) - set(reserve)) reserve_only.sort(); # 2. 여분을 기준으로 앞뒤를 확인하여 체육복을 빌려준다. for reserve in reserve_only: front = reserve - 1 back = reserve + 1 if front in lost_only: lost_only.remove(front) elif back in lost_only: lost_only.remove(back)..
2021.12.15 -
[프로그래머스] 프린터 문제 풀이(스택/큐 Lv.2) - 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1-1. Queue + Enumerate 를 활용한 Solution def solution(priorities, location): # 1. Queue를 만든다. printer = [(i,p) for i,p in enumerate(priorities)] turn = 0 while printer: job = printer.pop(0) # 2. 나보다 중요한 job이 있으면 뒤에 넣는다. if any(job[1] < other_job[1] for other_job in printer): printer.append(job) else: turn+=1 # 3. 내가 제일 중요하다면 수행하고 location과 비교한다. if job[0] == location: break;..
2021.12.13