분류 전체보기 33

[Programmers] 154539. 뒤에 있는 큰 수 찾기 (java)

https://school.programmers.co.kr/learn/courses/30/lessons/154539  문제 파악주어진 정보/입력자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 한다.입력: 정수 배열 numbers해결해야 하는 문제모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return하기단, 뒷 큰수가 존재하지 않는 원소는 -1을 담는다.  문제 풀이Stackimport java.util.*;class Solution { public int[] solution(int[] numbers) { int N = numbers.length; int[] answer = new int[N]; Stack stack = new Stack(..

알고리즘 2025.03.28

[Programmers] 155651. 호텔 대실 (java)

https://school.programmers.co.kr/learn/courses/30/lessons/155651  문제 파악주어진 정보/입력코니는 최소한의 객실만을 사용하여 예약 손님들을 받으려고 한다.한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있다.입력: 예약 시각이 문자열 형태로 담긴 2차원 배열 book_timebook_time[i]는 [대실 시작 시각, 대실 종료 시각] 형태해결해야 하는 문제코니에게 필요한 최소 객실의 수를 return하기 문제 풀이Greedy + Priority Queueimport java.util.*;class Solution { public int solution(String[][] book_time) { ..

알고리즘 2025.03.28

[Programmers] 172927. 광물 캐기 (java)

https://school.programmers.co.kr/learn/courses/30/lessons/172927  문제 파악주어진 정보/입력각 곡괭이로 광물을 캘 때의 피로도가 표로 주어진다.광물은 주어진 순서대로만 캘 수 있다.한 곡괭이를 선택하면, 해당 곡괭이로 광물 5개를 연속으로 캐야 한다.광산에 있는 모든 광물을 캐거나, 더 사용할 곡괭이가 없을 때까지 광물을 캔다.입력값: 마인이 갖고 있는 곡괭이의 개수를 나타내는 정수 배열 picks와, 광물들의 순서를 나타내는 문자열 배열 minerals제한사항: picks는 [dia, iron, stone]과 같은 구조로 이루어져 있다.해결해야 하는 문제마인이 작업을 끝내기까지 필요한 최소한의 피로도를 return 문제 풀이Greedyimport ja..

알고리즘 2025.03.24

[Programmers] 176962. 과제 진행하기 (java)

https://school.programmers.co.kr/learn/courses/30/lessons/176962  문제 파악주어진 정보/입력입력값: 과제 계획을 담은 이차원 문자열 배열 plans해결해야 하는 문제과제를 끝낸 순서대로 이름을 배열에 담아 return 문제 풀이Greeady + Stackimport java.util.*;class Solution { public String[] solution(String[][] oldPlans) { int N = oldPlans.length; Plan[] plans = new Plan[N]; for (int i = 0; i (p1.start - p2.start)); ..

알고리즘 2025.03.21

[Backjoon] 1238. 파티 (java)

https://www.acmicpc.net/problem/1238  문제 파악주어진 주요 정보/입력값입력값: 학생 수 N, 단방향 도로의 수 M, 파티 장소 X, M개의 도로 정보 (시작점 from, 끝점 to, 이 도로를 지나는데 필요한 소요시간 time)N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다.이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다.이 도로들은 단방향이기 때문에 아마 그들이 오고 가는 길이 다를지도 모른다.해결해야 하는 문제/출력값출력값: N명의 학생들 중 오고 가는데 가장 오래 걸리는 학생의 소요시간 문제 풀이Dijkstrapackage main.java.Backjoon;import java.io.BufferedReader;import java.io.IOEx..

알고리즘 2025.03.13

[Programmers] 178870. 연속된 부분 수열의 합 (java)

https://school.programmers.co.kr/learn/courses/30/lessons/178870#  문제 파악주어진 정보/입력값입력오름차순으로 정렬된 수열 sequence과 조건을 만족하는 부분 수열의 합 k기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 한다.해결해야 하는 문제합이 k인 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return해야 한다.합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾는다.길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾는다. 문제 풀이Two Pointerclass Solution { public int[] solution(int[] sequence,..

알고리즘 2025.03.11

[Programmers] 118669. 등산코스 정하기 (java)

https://school.programmers.co.kr/learn/courses/30/lessons/118669  문제 파악주어진 정보/입력값등산코스를 따라 이동하는 중 쉼터 혹은 산봉우리를 방문할 때마다 휴식을 취할 수 있다.휴식 없이 이동해야 하는 시간 중 가장 긴 시간을 해당 등산코스를 intensity라고 부른다.당신은 XX산의 출입구 중 한 곳에서 출발하여 산봉우리 중 한 곳만 방문한 뒤 다시 원래의 출입구로 돌아오는 등산코스를 정하려고 한다. 당신은 이러한 규칙을 지키면서 intensity가 최소가 되도록 등산코스를 정하려고 한다.입력값XX산의 지점 수 n각 등산로의 정보를 담은 2차원 정수 배열 paths출입구들의 번호가 담긴 정수 배열 gates산봉우리들의 번호가 담긴 정수 배열 sum..

알고리즘 2025.03.11

[Programmers] 181188. 요격 시스템 (java)

https://school.programmers.co.kr/learn/courses/30/lessons/181188  문제 파악주어진 정보/입력값입력: 각 폭격 미사일의 x 좌표 범위 (s, e)의 목록 targetA 나라가 발사한 폭격 미사일은 x축에 평행한 직선 형태의 모양 (s, e) 형태로 표현된다.B 나라는 특정 x 좌표에서 y축에 수평이 되도록 미사일을 발사하며, 발사된 미사일은 해당 x 좌표에 걸쳐있는 모든 폭격 미사일을 관통하여 한 번에 요격할 수 있다.0 ≤ s 100,000,000해결해야 하는 문제모든 폭격 미사일을 요격하기 위해 필요한 요격 미사일 수의 최솟값을 return하기 문제 풀이Greedyimport java.util.Arrays;class Solution { publ..

알고리즘 2025.03.06

[Programmers] 30. 디스크 컨트롤러 (java)

https://school.programmers.co.kr/learn/courses/30/lessons/42627?language=java  문제 파악주어진 정보 및 입력대기 큐의 Entry: 작업의 번호, 작업의 요청 시각, 작업의 소요 시간 저장디스크 컨트롤러는 하드디스크가 작업을 하고 있지 않고 대기 큐가 비어있지 않다면 가장 우선순위가 높은 작업을 대기 큐에서 꺼내서 하드디스크에 그 작업을 시킨다. (작업의 소요시간이 짧은 것, 작업의 요청 시각이 빠른 것, 작업의 번호가 작은 것 순으로 우선순위가 높다.)하드디스크는 작업을 한 번 시작하면 작업을 마칠 때까지 그 작업만 수행한다.입력: 각 작업에 대해 [작업이 요청되는 시점, 작업의 소요시간]을 담은 2차원 정수 배열 jobs해결할 문제우선순위 ..

알고리즘 2025.03.05