728x90 java151 [99클럽 5기] Day21 TIL - String, Sort, Map, Dynamic Programming 99클럽 5기 | Java | Middler 🗝️ 오늘의 학습 키워드 : String Sort Map Dynamic Programming⌛ 회고미들러 문제를 풀고 잠깐 졸았는데 어느새 온라인 스터디 마치는 시간이 거의 다 되어서급하게 출석을 하였는데 딱 10시 정각에 맞게 출석을 하였습니다.덕분에 오늘은 다른 분들 발표하는 것을 보지 못하였습니다.ㅜㅜ대신 미들러 문제 풀이 작성 후, 비기너 문제라도 하나 더 풀자는 마음으로 파일 정리 문제를 풀었습니다.그런데 문자열에 split() 메서드를 사용하는 부분에서 에러가 발생하였고에러의 원인은 마침표(.)를 기준으로 문자열 분리 시, 그냥 마침표만(split(".")) 넣으면 문자열 분리가 되지 않기 때문이었습니다.덕분에 마침표를 기준으로 문자열 분리하는 방.. 2025. 2. 18. [백준 | 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. [99클럽 5기] Day16 TIL - Heap, Greedy Algorithm, Math 99클럽 5기 | Java | Middler🗝️ 오늘의 학습 키워드 : Heap Greedy Math⌛ 회고오늘은 오후 늦게 알고리즘 문제를 풀었다.온라인 스터디도 참여하고 비기너 문제는 전에 못 풀었던 문제였는데 이제는 너무 쉽게 풀려서 신기했다.정말 실력이 안 느는 것 같아서 근심에 쌓일 때가 많았는데보이지 않게 성장하고 있는건가?라는 희망이 조금씩 생기는 날이었다.❓ 오늘 만난 문제🥉 비기너 : 더 맵게🥈 미들러 : 고양이는 많을수록 좋다🥇 챌린저 : Maximal Rectangle💦 나의 시도 & 해결 방법👍🥉 비기너 : [프로그래머스 | Java] 더 맵게🥈 미들러 : [백준 | Java] 27961번 고양이는 많을수록 좋다🥇 챌린저 : ❗ 무엇을 새롭게 알았는지힙에 대해 새로 .. 2025. 2. 11. [프로그래머스 | 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. 이전 1 2 3 4 5 ··· 17 다음 728x90