728x90 Language190 [백준 | Java] 11053번 가장 긴 증가하는 부분 수열 - Dynamic Programming 11053번 / 가장 긴 증가하는 부분 수열❓ 가장 긴 증가하는 부분 수열🏷️ 관련 주제 : Dynamic Programming💦 나의 시도어제도 다이나믹 프로그래밍 문제가 나와서 알고리즘 정리할 때, LIS(Longest Increasing Subsequence)를 봤었는데풀이 방법이 정확히 생각나지 않아 LCS(Longest Common Subsequence) 문제 풀이 코드 따라 쓰면서 사용했던 방법을 생각하며 문제를 풀어보았습니다.제일 앞 숫자부터 차례대로 뒷 숫자 탐색, 큰 값이 나오면 개수 및 마지막 숫자 업데이트int N 선언 : 입력할 숫자 개수int[] A 선언 : 입력한 숫자를 차례대로 담을 길이 N인 배열int[] lastElement 선언 : i번째 인덱스에 A[i]에서 시작한 .. 2025. 2. 19. [백준 | Java] 1003번 피보나치 함수 - Dynamic Programming 1003번 / 피보나치 함수❓ 피보나치 함수🏷️ 관련 주제 : Dynamic Programming💦 나의 시도int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); }}n이 0 일 때, int zero 1 증가, n이 1일 때, int one 1증가하는 fibonacci() 메서드 만들기인스턴스 변수 선언public static int zero : 0이 출력되는 횟수를 할당할 변수public static.. 2025. 2. 18. [백준 | Java] 20291번 파일 정리 - String, Sort, Map 20291번 / 파일 정리❓ 파일 정리🏷️ 관련 주제 : String Sort Map💦 나의 시도String split()과 Map을 이용한 방법입력받을 문자열 개수를 입력 받아 int형으로 변환 후, int N에 할당확장자와 개수를 담을 Map extensions를 선언키 : 확장자값 : 개수0 ~ (N - 1) 범위를 반복문을 돌면서 extensions에 확장자와 개수 추가확장자를 가져와 String e에 할당String e = br.readLine().split(".")[1];extensions의 키 e에 대한 값을 1 증가extensions.put(e, extensions.getOrDefault(e, 0) + 1);Stream API를 이용하여 extensions의 키를 알파벳순으로 오름차순 .. 2025. 2. 18. [백준 | 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. 이전 1 2 3 4 5 ··· 22 다음 728x90