프로그래머스(31)
-
[2021 카카오 코딩테스트] 키패드 누르기 - 자바 java
0. 자세한 설명은 YouTube 영상으로 1. Class를 활용한 solution class Solution { Position left; Position right; Position numPos; public String solution(int[] numbers, String hand) { String answer = ""; // 1. 왼손 오른손 위치 초기화 left = new Position(3, 0); right = new Position(3, 2); for (int num : numbers) { // 2. 숫자를 누를 손가락 정하기 numPos = new Position((num - 1) / 3, (num - 1) % 3); if (num == 0) numPos = new Position(3,..
2022.01.21 -
[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