2024/05 20

[99클럽 코테 스터디] 📝 Day11. DFS/BFS

99클럽 코테 스터디 11일차 TIL + DFS/BFS📍오늘의 학습 키워드DFS(깊이 우선 탐색)BFS(너비 우선 탐색)퍼즐 맞추기 문제도형 정규화 및 회전📝 공부한 내용 본인의 언어로 정리하기오늘은 DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색)를 사용하여 퍼즐 맞추기 문제를 해결하는 방법을 배웠습니다. DFS와 BFS를 사용해 게임 보드의 빈 공간과 테이블의 퍼즐 조각을 추출하고, 이를 정규화하여 비교하는 과정을 학습했습니다. 또한, 퍼즐 조각을 회전시켜 게임 보드의 빈 공간에 맞추는 방법을 익혔습니다.📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지오늘은 DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색)를 사용하여 퍼즐 맞추기 문제를 해결하는 방법을 배웠습니다. DFS와 ..

[99클럽 코테 스터디] 📝 Day10. BFS (너비 우선 탐색)

99클럽 코테 스터디 10일차 TIL + BFS (너비 우선 탐색)📍오늘의 학습 키워드그래프 이론BFS (너비 우선 탐색)완전 탐색시간 및 공간 복잡도 분석📝 공부한 내용 본인의 언어로 정리하기오늘은 송전탑 네트워크 문제를 해결하기 위해 그래프 이론과 BFS를 활용하여 전력망 문제를 해결하는 방법을 공부했다. 송전탑 네트워크와 전선들을 그래프로 표현하고, 각 전선을 하나씩 끊어서 두 개의 네트워크로 나누었다. 각 네트워크의 크기를 계산하여 송전탑 개수 차이를 최소화하는 방법을 배웠다. BFS 탐색을 통해 연결된 노드들의 개수를 효율적으로 셀 수 있다는 점도 확인했습니다.📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지송전탑 네트워크 문제에서 전선을 끊었을 때 두 전력망의 송전탑 개수..

[프로그래머스][JAVA] 84512. 모음사전

💡 문제모음사전 (https://school.programmers.co.kr/learn/courses/30/lessons/84512)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념 🤓 문제 풀이이 문제는 완전탐색을 사용하여 각 자리수의 알파벳에 대한 가중치를 계산하여, 주어진 단어의 사전 순서를 찾아냅니다. 사전에 길이 5 이하의 모든 단어를 만들 수 있는 알파벳 모음 'A', 'E', 'I', 'O', 'U'가 사용된다고 합니다. 이 단어들을 사전 순서대로 배열했을 때, 주어진 단어 **word**가 몇 번째에 위치하는지 찾는 문제입니다. 이를 해결하기 위해 완전탐색을 사용합니다. 이를 통해 주어진 단어가 몇 번째 단어인지 효율적으로 찾을 수 있습니다.완전탐색을 위해서는 각 위..

[99클럽 코테 스터디] 📝 Day9. Java 너란 탐색. 친해지자료구조

99클럽 코테 스터디 9일차 TIL + 완전탐색📍오늘의 학습 키워드완전탐색시간 복잡도공간 복잡도문자열 조작사전 순서 계산📝 공부한 내용 본인의 언어로 정리하기오늘은 주어진 문자열이 사전에서 몇 번째 위치에 있는지 계산하는 문제를 풀었습니다. 완전탐색 방법을 사용해 각 자리의 알파벳 가중치를 계산하여 순서를 정하는 방식을 이해했습니다. 또한, 코드의 시간 복잡도와 공간 복잡도를 분석하여 효율성을 확인했습니다. 📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지주어진 문자열이 알파벳 모음 'A', 'E', 'I', 'O', 'U'로 구성되어 있고, 길이 5 이하인 단어들이 사전에서 몇 번째 위치에 있는지 찾는 문제를 풀었습니다. 처음에는 각 자리의 알파벳 위치를 계산하고, 가중치를 곱하여..

[99클럽 코테 스터디] 📝 Day8. 정렬이란

99클럽 코테 스터디 8일차 TIL + 정렬된 큐 📍오늘의 학습 키워드문자열 회전사전 순 정렬Java substring 메서드Java compareTo 메서드Java Arrays.sort 메서드📝 공부한 내용 본인의 언어로 정리하기오늘은 문자열을 주어진 조건에 따라 회전시키고, 사전 순으로 가장 작은 문자열을 찾는 방법을 공부했다. **k**값에 따라 두 가지 접근법을 사용했다. k가 1일 때는 문자열을 여러 번 회전시켜 가능한 모든 회전된 문자열 중 가장 작은 것을 찾았다. k가 2 이상일 때는 문자열의 모든 문자를 정렬하여 사전 순으로 가장 작은 문자열을 구했다. 이를 위해 substring, compareTo, Arrays.sort 메서드를 사용했다. 📖 오늘의 회고📚 어떤 문제가 있었고, ..

[리트코드][JAVA] 899. orderly-queue (정렬된 큐)

💡 문제orderly-queue (https://leetcode.com/problems/orderly-queue/description/)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념시간 복잡도:k == 1: O(n^2)k >= 2: O(n log n)공간 복잡도:k == 1: O(n)k >= 2: O(n)🤓 문제 풀이문제 번역문자열 s와 정수 k가 주어집니다. s의 처음 k개의 문자 중 하나를 선택하여 문자열 끝에 추가할 수 있습니다. 주어진 단계를 여러 번 적용한 후 얻을 수 있는 사전 순으로 가장 작은 문자열을 반환하세요. 예시 1:입력: s = "cba", k = 1출력: "acb"설명:첫 번째 , 첫 번째 문자 'c'를 끝으로 이동하여 문자열 "bac"를 얻습니다.두 번..

[리트코드][JAVA] 2551. Put Marbles in Bags (구슬을 가방에 담다)

💡 문제Put Marbles in Bags (https://leetcode.com/problems/put-marbles-in-bags/description/)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념 🤓 문제 풀이문제 해석:1- 주어진 배열 weights에는 각 구슬의 무게가 저장되어 있습니다. 또한 정수 k가 주어집니다. 이 배열에서 k개의 가방에 구슬을 다음 규칙에 따라 나누려고 합니다:어떤 가방도 비어 있지 않아야 합니다.i번째 구슬과 j번째 구슬이 같은 가방에 있다면, i부터 j번째 인덱스에 있는 모든 구슬도 같은 가방에 있어야 합니다.한 가방에 속한 구슬의 인덱스 범위가 i부터 j이면, 해당 가방의 비용은 weights[i] + weights[j]입니다.구슬을 배분..

[프로그래머스][JAVA] 이중 우선순위 큐

💡 문제이중우선순위큐 (https://school.programmers.co.kr/learn/courses/30/lessons/42628)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념이중 우선순위 큐는 최댓값과 최솟값을 모두 효율적으로 처리할 수 있는 자료구조 Collections.reverseOrder()Collections.reverseOrder()는 Java의 Collections 클래스에서 제공하는 정적 메서드로, 기본 정렬 순서를 반대로 하는 데 사용됩니다. 이 메서드는 Comparator 객체를 반환하며, 이 객체를 사용하여 컬렉션을 내림차순으로 정렬할 수 있습니다. 이는 기본 데이터 타입뿐만 아니라 커스텀 객체에도 적용할 수 있으며, Comparable 인터페이스를 ..

[99클럽 코테 스터디] 📝 Day7. 간단한 JAVA 솔루션이 100% 승리합니다!

99클럽 코테 스터디 7일차 TIL + 정렬 📍오늘의 학습 키워드이중 우선순위 큐정렬 알고리즘우선순위 큐 사용법배열의 부분 합 계산📝 공부한 내용 본인의 언어로 정리하기오늘은 이중 우선순위 큐와 정렬 알고리즘을 활용한 문제 풀이에 대해 공부했다. 주어진 배열에서 인접한 두 요소의 합을 계산하고, 이를 통해 최대 점수와 최소 점수를 계산하는 방법을 배웠다. 또한, 우선순위 큐를 사용하여 효율적으로 데이터를 관리하는 방법도 익혔다.📖  오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지문제: 주어진 배열을 k개의 가방으로 나누어 최댓값과 최솟값의 점수 차이를 구하는 문제에서, 중간에 올바른 값이 나오지 않는 문제를 발견했다. 시도: 초기에는 우선순위 큐를 사용하여 최솟값과 최댓값을 관리했으나..

[99클럽 코테 스터디] 📝 Day6. 꾸준함2

99클럽 코테 스터디 6일차 TIL + 힙(Heap) 📍오늘의 학습 키워드힙(Heap) 자료구조이중 우선순위 큐 구현PriorityQueue 사용법Comparator 인터페이스📝 공부한 내용 본인의 언어로 정리하기오늘은 주어진 명령어를 효율적으로 처리할 수 있는 자료구조로 힙(Heap)을 사용하는 방법에 대해 배웠다. 이중 우선순위 큐 문제를 해결하기 위해 최댓값과 최솟값을 빠르게 찾고 삭제할 수 있는 힙 자료구조를 선택했다. 또한, Java에서 PriorityQueue와 Comparator를 활용해 우선순위 큐를 구현하는 방법도 공부했다.📖  오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지이중 우선순위 큐 문제를 해결하면서 최댓값과 최솟값을 효율적으로 처리하는 방법에 대한 고민이 있..

[99클럽 코테 스터디] 📝 Day5. 꾸준하게

99클럽 코테 스터디 5일차 TIL + 힙(Heap) 📍오늘의 학습 키워드Heap 📝 공부한 내용 본인의 언어로 정리하기 📖  오늘의 회고오늘은 디스크 컨트롤러 문제를 해결하는 과정에서 자료구조인 힙(Heap)을 활용하는 방법에 대해 공부했습니다. 문제를 해결하기 위해 우선순위 큐를 사용하여 작업의 소요 시간을 기준으로 작업을 처리하려 했습니다. 또한, Arrays.sort와 Comparator를 이용한 정렬 방법에 대해서도 고민해 보았습니다.📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지🤔 어떻게 해결했는지🔖 문제 해결 링크 (https://develop-tracking.tistory.com/53)작업을 요청 시간 순서로 정렬하기 위해 Arrays.sort(jobs, (a, b) -> a[..

[프로그래머스][JAVA] 디스크 컨트롤러

💡 문제챌린저: 디스크 컨트롤러 (https://school.programmers.co.kr/learn/courses/30/lessons/42627)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념힙(Heap) 이란힙(Heap)은 완전 이진 트리의 일종으로, 특정한 조건을 만족하는 자료구조입니다. 힙은 다음 두 가지 유형이 있습니다최대 힙(Max Heap): 부모 노드의 값이 항상 자식 노드의 값보다 크거나 같은 힙. 따라서 루트 노드의 값이 가장 큽니다.최소 힙(Min Heap): 부모 노드의 값이 항상 자식 노드의 값보다 작거나 같은 힙. 따라서 루트 노드의 값이 가장 작습니다.힙의 특성 덕분에 힙은 우선순위 큐(Priority Queue)를 구현하는 데 사용됩니다. 우선순위 큐..

[프로그래머스][JAVA] 주식 가격

💡 문제 주식 가격 (https://school.programmers.co.kr/learn/courses/30/lessons/42584)자세한 문제 설명과 입출력 예는 링크를 참고해주세요.📝 선행 개념스택(Stack)은 프로그래밍에서 자주 사용되는 기본 자료구조 중 하나입니다. 스택은 LIFO(Last In, First Out) 원칙을 따릅니다. 즉, 마지막에 삽입된 요소가 가장 먼저 삭제되는 구조입니다. 스택은 다음과 같은 두 가지 주요 연산을 제공합니다스택의 기본 동작push: 스택의 맨 위에 요소를 추가하는 연산pop: 스택의 맨 위에 있는 요소를 제거하고 반환하는 연산peek: 스택의 맨 위에 있는 요소를 제거하지 않고 반환하는 연산isEmpty: 스택이 비어 있는지 확인하는 연산size: 스..

[프로그래머스][JAVA] 다리를 지나는 트럭

💡 문제 다리를 지나는 트럭 (https://school.programmers.co.kr/learn/courses/30/lessons/42583) 자세한 문제 설명과 입출력 예는 링크를 참고해주세요.📝 선행 개념큐(Queue)는 컴퓨터 과학에서 사용하는 자료 구조 중 하나로, 먼저 들어온 데이터가 먼저 나가는 FIFO(First In First Out) 원칙을 따릅니다. 큐는 일상생활에서 줄을 서서 차례를 기다리는 상황을 생각하면 이해하기 쉽습니다. 예를 들어, 사람들은 줄의 맨 앞에서 차례를 기다리며, 새로 온 사람들은 줄의 맨 뒤에 서게 됩니다.큐의 기본 동작삽입(Enqueue): 요소를 큐의 뒤쪽에 추가합니다.삭제(Dequeue): 요소를 큐의 앞쪽에서 제거합니다.확인(Peek or Front)..

[99클럽 코테 스터디] 📝 Day4. 회사… 힘들다.. 하지만..

(부제:포기하지 않고 앞으로 나아가기)99클럽 코테 스터디 4일차 TIL + 스택📍오늘의 학습 키워드스택📝 공부한 내용 본인의 언어로 정리하기주요 개념!스택이란스택(Stack)은 프로그래밍에서 자주 사용되는 기본 자료구조 중 하나입니다. 스택은 LIFO(Last In, First Out) 원칙을 따릅니다. 즉, 마지막에 삽입된 요소가 가장 먼저 삭제되는 구조입니다. 스택은 다음과 같은 두 가지 주요 연산을 제공합니다📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지문제에 대해서 설명만 기재해보도록 하겠다.이 문제는 주식 가격이 기록된 배열에서 각 시점별로 주식 가격이 떨어지지 않은 기간을 계산하는 것입니다. 문제를 해결하기 위한 접근 방법과 이를 스택을 사용해 해결해야 하는 이유를 ..

[99클럽 코테 스터디] 📝 Day3. 바쁜 일상속 노력

99클럽 코테 스터디 3일차 TIL + 스택/큐📍오늘의 학습 키워드스택/큐📝 공부한 내용 본인의 언어로 정리하기주요 개념!큐(Queue)는 컴퓨터 과학에서 사용하는 자료 구조 중 하나로, 먼저 들어온 데이터가 먼저 나가는 FIFO(First In First Out) 원칙을 따릅니다. 큐는 일상생활에서 줄을 서서 차례를 기다리는 상황을 생각하면 이해하기 쉽습니다. 예를 들어, 사람들은 줄의 맨 앞에서 차례를 기다리며, 새로 온 사람들은 줄의 맨 뒤에 서게 됩니다.📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지큐를 사용하여 풀이를 하는게 보여서 어려움은 없었지만 내가 어떻게 문제를 접근했는지 간단하게 작성해봤다. 이 문제는 트럭들이 다리를 건너는 과정을 특정 조건을 만족하면서 최소 ..

[백준][JAVA] 비슷한 단어

💡 문제 비슷한 단어 (https://www.acmicpc.net/problem/2179)자세한 문제 설명과 입출력 예는 링크를 참고해주세요.📝 선행 개념주어진 문제를 해결하기 위해 다양한 자료 구조와 알고리즘을 사용할 수 있다.해당 문제에서는 해시맵(HashMap)과 배열을 사용하여 문제를 해결하였으며 아래는 해당 문제를 해결하는 데 사용된 자료 구조와 알고리즘에 대한 설명입니다. 자료 구조해시맵 (HashMap): 단어를 키로, 해당 단어의 입력 순서를 값으로 저장합니다. 이를 통해 단어의 입력 순서를 기억할 수 있습니다.배열 : 입력된 단어들을 저장합니다. 이를 통해 단어 쌍을 비교할 수 있습니다.알고리즘문자열 비교:각 단어 쌍에 대해 최대 접두사 길이를 계산합니다.이중 반복문 (Nested L..

[프로그래머스][JAVA] 베스트앨범

💡 문제베스트앨범 (https://school.programmers.co.kr/learn/courses/30/lessons/42579)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념1. Comparable 인터페이스public interface Comparable { public int compareTo(T o);}이 메서드는 현재 객체와 지정된 객체를 비교하여 다음과 같은 값을 반환해야 합니다2. Collections.sortCollections.sort 메서드는 Java의 Collections 클래스에 정의된 정적 메서드로, 리스트를 정렬할 때 사용됩니다. Comparable 인터페이스를 구현한 객체들의 리스트를 정렬할 때 유용합니다.List songs = new Arra..

[99클럽 코테 스터디] 📝 Day2. 꾸준함

99클럽 코테 스터디 2일차 TIL + Hash📍오늘의 학습 키워드자료 구조, 문자열, 정렬, 해시를 사용한 집합과 맵 📝 공부한 내용 본인의 언어로 정리하기자료구조 Hash란해시 자료 구조는 데이터의 빠른 검색, 삽입, 삭제를 위해 사용되는 데이터 구조입니다. 해시 테이블(Hash Table)이라고도 불리며, 키-값 쌍을 저장하는 데 사용됩니다. 해시 자료 구조의 핵심 개념은 해시 함수(Hash Function)입니다. 해시 함수는 임의의 크기를 가지는 데이터를 고정된 크기의 값으로 매핑하는 함수입니다.주요 개념!해시 함수 (Hash Function):입력 데이터를 받아서 해시 코드를 생성합니다. 이 해시 코드는 데이터의 인덱스로 사용되어 해시 테이블에서 해당 데이터를 빠르게 찾을 수 있게 합니다...

[99클럽 코테 스터디] 📝 Day1. OT

99클럽 코테 스터디 1일차 TIL + Hash📍오늘의 학습 키워드Hash 📝 공부한 내용 본인의 언어로 정리하기Comparable 인터페이스는 Java에서 객체의 자연 순서를 정의하기 위해 사용하는 표준 인터페이스입니다.이 인터페이스를 구현하는 클래스는 compareTo 메서드를 통해 두 객체의 비교 방법을 정의합니다. 이로 인해 해당 클래스의 객체들이 자연스럽게 정렬될 수 있습니다.* Comparable 인터페이스Comparable 인터페이스는 java.lang 패키지에 포함되어 있습니다. 이 인터페이스는 단일 메서드 compareTo를 제공합니다.public interface Comparable { public int compareTo(T o);} 이 메서드는 현재 객체와 지정된 객체를 비..