본문 바로가기
728x90

Language/Java144

[백준 | Java] 19598번 최소 회의실 개수 - Greedy, PriorityQueue 19598번 / 최소 회의실 개수❓ 최소 회의실 개수🏷️ 관련 주제 : Greedy Sort Swipping PriorityQueue💦 나의 시도우선순위 큐(PriorityQueue)를 이용해 회의 시간 정렬하여 풀이 시도변수 선언PriorityQueue meeting 선언 : {회의 시작 시간, 회의 종료 시간}을 담은 1차원 int 배열을 담을 우선순위 큐사용자 지정 정렬 : 회의 시작 기준 오름차순, 회의 종료 시간 기준 오름차순PriorityQueue meeting = new PriorityQueue((a, b) -> (a[0] == b[0]) ? a[1] - b[1] : a[0] - b[0]);ArrayList rooms 선언 : 현재 진행 중인 회의의 종료 시간을 담을 ArrayListin.. 2025. 2. 15.
[백준 | Java] 신입 사원 - Greedy, Sort 1946번 / 신입 사원 ❓ 신입 사원 🏷️ 관련 주제 : Greedy Algorithm Sort💦 나의 시도반복문을 이용한 교집합 구하는 방법을 이용한 시도길이 N 이차원 배열 int[][] newbies 에 {사원 번호, 서류 심사 순위, 인터뷰 순위}를 입력 순서대로 할당서류 심사 순위, 인터뷰 순위의 오름차순대로 정렬한 사원 번호를 각각의 배열 int[] paperRank, int[] interviewRank로 할당for-each문을 통해 newbies에서 사원 정보가 담긴 일차원 배열 int[] n을 하나씩 꺼내기n보다 높은 순위의 사원 구하기Set better에 n보다 높은 순위의 사원 번호를 반복문을 통해서 넣기서류 심사 순위와 인터뷰 순위가 모두 높은 사원이 존재하지 않으면 결과값으.. 2025. 2. 14.
[백준 | Java] 11399번 ATM 11399번 / ATM❓ ATM🏷️ 관련 주제 : Greedy Sort💦 나의 시도정렬, 배열의 0 ~ i 인덱스까지의 합을 인덱스 i에 할당, 모든 원소의 합 구하기각 사람이 돈을 인출하는 데 필요한 시간의 합의 최솟값을 구하기 위해 인출하는데 걸리는 시간 $P_i$가 짧은 사람부터 돈을 인출하여야 한다.각 사람이 돈을 인출하는 데 걸리는 시간 $P_i$를 배열에 담아 오름차순 정렬하였을 때, i번째 사람이 돈을 인출하는 데 걸리는 시간은 0 ~ i번 인덱스 원소까지의 총 합만큼이 걸립니다.저는 입력값을 문자열로 받아 split(" ")하여 문자열 배열을 구하고Stream API를 통해 int형 변환 및 오름차순 정렬하여int[] times를 구하였습니다.일일이 0 ~ i번 인덱스 원소까지의 총 합.. 2025. 2. 12.
[프로그래머스 | Java] 더 맵게 코딩테스트 연습 > 힙(Heap) > 더 맵게❓ 더 맵게🏷️ 관련 주제 : 힙💦 나의 시도PriorityQueue와 재귀함수를 이용한 풀이음식을 섞을 때, 가장 맵지 않은 두 스코빌 지수의 음식을 섞으므로음식을 섞은 후에 항상 정렬이 되어 있어야 할 필요가 있다고 생각하였습니다.따라서 매번 정렬을 하는 것보다 PriorityQueue를 사용하는 것이 더 적절하다고 판단하여 PriorityQueue를 스코빌 지수를 담을 자료구조로 선택하였습니다.그리고 재귀함수를 통해 결과값을 반환하도록 하였습니다.PriorityQueue heap 내의 원소 개수가 2개 미만이면 음식을 섞을 수 없으므로 -1을 반환하도록 하였습니다.heap의 크기가 2 이상이면 음식을 섞을 수 있으므로 음식을 섞은 횟수 int mixC.. 2025. 2. 11.
[백준 | Java] 27961번 고양이는 많을수록 좋다 27961번 / 고양이는 많을수록 좋다❓ 고양이는 많을수록 좋다🏷️ 관련 주제 : 수학 Greedy Algorithm💦 나의 시도로그를 사용한 방법마도카가 사용할 수 있는 마법으로 생성 마법과 복제 마법이 있는데복제 마법은 일부 또는 전부를 대상으로 복제하므로 1마리만도 복제 가능합니다.즉, N이 0보다 클 때, 맨 처음 생성 마법을 사용한 이후로는 복제 마법만 사용한다고 생각하고 문제를 풀면 될 것이라고 생각하였습니다.$ 0 \leq N \leq 10^{12}$N이 0인 경우, 0 출력N이 1인 경우, 생성 마법 1회 $\rightarrow$ 1 출력N이 1 초과인 경우, 생성 마법 1회 + 복제 마법 m번 실행 $\rightarrow$ m + 1 출력$2^{m-1} \lt N \leq 2^m$m을.. 2025. 2. 10.
[백준 | Java] 4949번 균형잡힌 세상 4949번 / 균형잡힌 세상❓ 균형잡힌 세상🏷️ 관련 주제 : Stack💦 나의 시도스택(Stack)을 이용한 방법괄호를 매칭하는 것은 한 글자씩 읽을 때,현재의 괄호와 이전에서 맨 마지막에 나온 괄호와 매칭을 하므로LIFO 원칙을 따름따라서 스택(Stack)을 이용하는 것이 적합하다고 판단여는 괄호((, [)는 스택에 추가 (push())닫는 괄호(), ])는 스택의 맨 위 원소와 비교하여쌍이 매칭이 되면((:) / [:]), pop()그렇지 않으면, no마침표(.)가 나왔을 때,스택이 비어있지 않으면, no비어있으면, yes❌ 틀렸습니다.처음에 LIFO 원칙을 따르는 것을 착각하여 큐(Queue)를 잘못 사용하였는데코드를 읽어보고 스택으로 수정하여 제출 성공하였습니다.📑제출 기록 및 오답 원인?.. 2025. 2. 7.
[백준 | Java] 15686번 치킨 배달 15686번 / 치킨 배달❓ 치킨 배달🏷️ 관련 주제 : Brute Force 💦 나의 시도완전 탐색을 통한 최소 치킨 거리 구하기도시의 크기 : N × N폐업 시키지 않을 최대 치킨 집 개수 : M2 ≤ N ≤ 501 ≤ M ≤ 13(집의 개수) ≤ 2NM ≤ (치킨 집 개수) ≤ 13 BufferedReader를 통해 집의 위치와 치킨집의 위치를 입력 받아 int[] 배열로 ArrayList에 담기0 : empty1 : 집ArrayList houses에 위치 인덱스를 담은 길이 2인 int[] 배열 추가2 : 치킨집ArrayList chickens에 위치 인덱스를 담은 길이 2인 int[] 배열 추가2중 for문을 돌며 각 치킨집에 대한 모든 집의 치킨 거리를 int[] 배열에 담아 Map에 저장.. 2025. 2. 7.
[백준 | Java] 26043번 식당 메뉴 26043번 / 식당 메뉴❓ 식당 메뉴🏷️ 관련 주제 : 정렬 큐💦 나의 시도큐(Queue)를 이용한 풀이학교 식당에 도착한 학생은 식당 입구에 줄을 서서 대기한다.학교 식당에 먼저 도착한 학생이 나중에 도착한 학생보다 식당 입구의 앞쪽에서 대기한다.👉 FIFO 원칙을 따르므로 큐(Queue) 선택입력값에 따른 코드 실행입력되는 값이 유형 1인 경우,int[] student : 길이 2인 학생 정보를 담을 배열student[0] : 학생 번호student[1] : 좋아하는 메뉴Queue waiting에 student 추가입력되는 값이 유형 2인 경우,int prepared : 준비된 메뉴큐 waiting에서 원소를 하나 꺼내(student) 조건문 실행준비된 메뉴(prepared)와 학생이 좋아하는.. 2025. 2. 7.
[백준 | Java] 2615번 오목 2615번 / 오목❓ 오목🏷️ 관련 주제 : Brute Force💦 나의 시도완전탐색 시도테스트 케이스로 주어진 문제는 정답이 출력되는 것을 확인했으나 제출 실패ㅜㅜimport java.io.*;import java.util.*;public class Main { public static int[][] board = new int[19][19]; public static int[][] directions = { {-1, 1}, {0, 1}, {1, 1}, {1, 0} }; public static boolean win = false; public static void main(String[] args) throws IOExc.. 2025. 2. 7.
728x90