1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를�� programmers.co.kr 2. 설명 우선순위 큐(waiting)를 사용했다. 먼저 jobs를 요청시간로 정렬하고, 현재 시간(time)에서 진행할 수 있는 작업을 waiting에 삽입했다. waiting은 빨리 끝나는 작업 순으로 정렬되어 있기 때문에 하나씩 꺼내서 시간을 추가해줬다. waiting이 비어있을 경우, 현재 진행할 수 있는 작업이 없으므로 time을 1..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr 2. 설명 완전탐색 문제라서 모든 경우의 수를 고려했다. 일단 가로 세로 곱과 합은 식을 세워서 선언해뒀고, 하나씩 대입해보면서 곱과 합이 일치하는지 확인하며 풀어나갔다 ! 3. 코드 class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 2. 설명 일단 물 웅덩이가 있는 곳은 -1로 표시해줬다 ! 그리고 배열을 쭉 살피면서 길을 찾아갔다. 중학교? 고등학교? 때 배운 길찾기 문제를 코드로 옮기는 듯한 문제였다. 3. 코드 class Solution { public int solution(int m, int n, int[][] puddles) { int answer = 0; ..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 2. 설명 탐욕법관련된 문제다. 첫번째 배열로 정렬하고, 차량 진출지점을 기준으로 카메라 위치를 선정해 나갔다. 겹쳐지지 않는 부분이면 카메라를 한대 추가하고, 그 차량의 진출지점에 다시 카메라를 설치했다. 기본적으로 한 대 이상의 카메라가 설치되어야 되기 때문에 answer의 기본값을 1로 잡고 시작했다. 3. 코드 import java.util.*; class Solution { public int solution(int[][] routes) { int..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같�� programmers.co.kr 2. 설명 우선순위 큐를 사용해서 풀었다! 처음에 리스트 사용해서 정렬하는 방식으로 풀었는데 효율성 이전에 정확성에서 틀려버리더라 왜그런지는 모르겠다. 3. 코드 import java.util.PriorityQueue; class Solution { public int solution(int[] scoville, int K) { int..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 2. 설명 number의 첫번째 인덱스로부터 인덱스 + k 까지 최댓값을 찾아서 answer에 삽입하는 방식으로 풀었다. 반복을 진행하는 것은 number 길이 - k 까지만 진행하면 된다. j의 시작을 idx로 잡은 이유는 이미 선택한 최댓값을 지나치기 위해서! 탐욕법은 아직 어렵다. 3. 코드 class Solution { public String solution(String number, int k) { StringBuilder answer = new StringBuilder(); int idx = 0; char max; ..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이�� programmers.co.kr 2. 설명 리스트사용해서 풀었다! 리스트 대신 큐 사용해도 될 것같다. 3. 코드 import java.util.ArrayList; class Solution { public int solution(int bridge_length, int weight, int[] truck_weights) { int answer = 0; Array..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 2. 설명 stack 사용했다! stack에 같은 문자가 있으면 pop해주고 아닐경우는 push했다. stack size가 0이 되면 다 제거됬다는 뜻으로 1을 return 3. 코드 import java.util.Stack; class Solution { public int solution(String s) { Stack stack = ..
- Total
- Today
- Yesterday