본문 바로가기

분류 전체보기

(174)
[코딩테스트] Java 모의고사 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트모의고사를 제일 많이 맞춘 사람을 구하는 문제입니다. 각 수포자가 규칙이 있으니 문제 번호에 패턴의 길이만큼의 나머지로 문제를 푸는 방법으로 구현하였습니다.소스코드import java.util.*;class Solution { public int[] solution(int[] answers) { int[][] omr = { {1, 2, 3, 4, 5}, {2, 1, 2, 3, 2, 4, 2, 5}, {3,..
[코딩테스트] Java 최소 직사각형 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트하나의 명함의 최대 값을 가로로 설정하고 각 명함마다의 최대의 가로와 세로를 설정해야 모든 명함이 들어가는 명함 케이스의 최소 크기를 측정할 수 있습니다.소스코드class Solution { public int solution(int[][] sizes) { int row = Integer.MIN_VALUE, col = Integer.MIN_VALUE; for(int[] size: sizes) { row = Math.max(row, Math.max(siz..
[코딩테스트] Java H-Index 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트H-Index를 찾기 위해서 정렬이 꼭 필요합니다. 또 i를 0부터 순회하면 len - i는 최대 값이 되므로 다음 코드와 같이 로직을 계산합니다.소스코드import java.util.*;class Solution { public int solution(int[] citations) { Arrays.sort(citations); int len = citations.length; for (int i = 0; i = len - i) { ..
[코딩테스트] Java 가장 큰 수 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트각 자릿수를 토대로 비교하면서 가장 큰 수를 구할 수도 있겠습니다만, 시간 초과가 날 것입니다.이를 위해 문자열 정렬로 생각하여 문제를 풀었습니다. 예를 들어, a = "3"와 b = "30"일 때 (b + a)는 "303"이고 (a + b)는 "330"입니다. 따라서 "330"이 더 앞에 오도록 구현하였습니다.소스코드import java.util.*;class Solution { public String solution(int[] numbers) { StringBuilder sb =..
[코딩테스트] Java K번째 수 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트배열의 서브 어레이를 구하는 것이 포인트였다고 생각합니다. 이를 위해 자바의 copyOfRange() 함수를 이용합니다.소스코드import java.util.*;class Solution { public int[] solution(int[] array, int[][] commands) { List answerList = new ArrayList(); for (int[] command: commands) { int i = command[0]..
[코딩테스트] Java 이중 우선순위 큐 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트최댓값과 최솟값을 효율적으로 관리 및 구하기 위해 최소 힙과 최대 힙을 두개 선언하고 연산에 맞게 관리합니다.소스코드import java.util.*;class Solution { public int[] solution(String[] operations) { PriorityQueue max = new PriorityQueue(Collections.reverseOrder()); PriorityQueue min = new PriorityQueue(); ..
[코딩테스트] Java 디스크 컨트롤러 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트가장 최소의 처리량 평균 시간을 구하는 문제였습니다. 요청시간이 빠른 순대로 정렬을 하면 짧은 작업시간을 가지는 일들에 대해서는 너무 오래 기다리게 되고, 짧은 작업시간 순대로 정렬을 하면 요청이 먼저 온 작업을 처리를 하지 못하게 됩니다. 따라서 현재 시간에 따라 처리 가능한 작업을 구하고 그 중에서 요청시간이 짧은 것을 먼저 처리합니다.소스코드import java.util.*;class Solution { static class Job implements Comparable { ..
[코딩테스트] Java 더 맵게 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁Programmers 알고리즘 고득점 Kit입니다.포인트최솟값을 찾기 위해 정렬을 사용해도 되지만 가장 효율적인 자료 구조 Heap을 이용하여 스코빌 지수의 최솟값을 찾도록 코드를 구현하였습니다.소스코드import java.util.*;class Solution { public int solution(int[] scoville, int K) { PriorityQueue scovilles = new PriorityQueue(); for (int level: scoville) { scovilles..