🔗 문제 https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 📝 풀이 - 각 배열의 두 값중 가장 큰 수는 가로길이, 작은 수들 중에서 큰 값이 세로 길이가 된다. 💻 코드 class Solution { public int solution(int[][] sizes) { int wMax = 0; int hMax = 0; int answer = 0; for(int i=0; i < sizes.length; i++){ in..
🔗 문제 https://programmers.co.kr/learn/courses/30/lessons/72411?language=java 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 내코드 package com.kyhslam.programmers.kakao; import java.util.*; public class cp01 { private static List FoodMaps = new ArrayList(); private static int[] MaxCnt = new int[11]; public stat..
🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 📝 풀이 종류별로 같은 이름의 옷은 없으므로 HashMap을 이용하여 풀어보았습니다. 처음 등장하는 Key는 등장 횟수를 1로 설정하고, 그 이후 등장 부터는 기존 값에 1을 더하는 방식으로 구현하였습니다. 입을 수 있는 옷 종류의 수는 각 종류별로 선택할지 안 할지 여부(+1)를 포함하여 아래와 같은 방식으로 구할 수 있습니다. (A종류 옷 가지수 + 1)*(B종류 옷 가지수 + 1)*(C종류 옷 가지수 + 1) - 1 마지막의 -1은 아무것도 선택하지 않은 경우는 없어야하므로 제외 해준 것입니다. 코드로 구현할 때는 향상된 for..
🔗 문제 [프로그래머스] 전화번호 목록 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 📝 풀이 접두사(接頭辭,prefix)는 어떤 단어(어근)의 앞에 붙어 뜻을 첨가하여 하나의 다른 단어를 이루는 말을 이른다. 예 : ‘맨주먹·덧버선·풋사과·군소리’ 등에서 ‘맨―’·‘덧―', '풋-', '군-' 따위 즉, 119는 11 9552 4421 중에서 끝자리인 1을 제외한 119552442의 접두어 이므로 false이다. 💻 코드 public static boolean solution(String[] phone..
🔗 문제 링크 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 💻 코드 import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; ArrayList p = new ArrayList(); ArrayList c = new ArrayList(); for(int i=0; i < participant.length; i++) { p.add..
package org.kyhslam; import java.util.Arrays; public class stack03 { public static int[] solution(int[] prices) { int[] answer = new int[prices.length]; for(int i=0; i prices[j]){ break; } } } System.out.println(Arrays.toString(answer)); return answer; } public static void main(String[] args) { int[] p =..
문제 https://programmers.co.kr/learn/courses/30/lessons/42587?language=java 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 내가한거 package org.kyhslam; import java.util.*; public class stack02 { public static class Task { private int priority; private int location; public Task(int priority, int location) { this.p..
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr package com.hyosung.algo; import java.util.Scanner; public class pro_sort02 { static int[] buff; static void swap(int[]a, int x, int y) { int temp = a[x]; a[x] = a[y]; a[y] = temp; } static void quickSort(int[] a, int left, int right) { int ..
네트워크 https://programmers.co.kr/learn/courses/30/lessons/43162 풀이 class Solution { public int solution(int n, int[][] computers) { int answer = 0; boolean visited[] = new boolean[n+1]; for(int i=0; i < n; i++){ if( visited[i] == false){ answer += dfs(i, computers, visited); } } return answer; } public static int dfs(int x, int[][] computers, boolean[] visited){ if(visited[x]){ return 0; } visited..