코딩테스트 25

[99클럽 코테 스터디] 📝 Day19. 동적 프로그래밍 (DP) 2

99클럽 코테 스터디 19일차 TIL + 동적 프로그래밍 (DP) 2📍 오늘의 학습 키워드동적 프로그래밍📝 공부한 내용 본인의 언어로 정리하기동적 프로그래밍은 복잡한 문제를 효율적으로 해결하기 위한 알고리즘 기법 중 하나입니다. 이를 위해 몇 가지 주요 개념을 이해해야 합니다.최적 부분 구조 (Optimal Substructure): 큰 문제를 작은 문제로 나눌 수 있고, 작은 문제의 최적해를 이용하여 큰 문제의 최적해를 구할 수 있는 구조입니다.중복되는 부분 문제 (Overlapping Subproblems): 동적 프로그래밍에서는 같은 문제를 반복해서 해결해야 할 때가 있습니다. 중복되는 계산을 피하기 위해 이미 계산한 값을 저장하고 재활용합니다.메모이제이션 (Memoization): 이미 계산한..

Algorithm/Study 2024.06.09

[99클럽 코테 스터디] 📝 Day13. BFS

99클럽 코테 스터디 13일차 TIL + BFS📍 오늘의 학습 키워드BFS (너비 우선 탐색)DFS (깊이 우선 탐색)그래프 탐색 알고리즘최단 경로 문제백트래킹 (Backtracking)📝 공부한 내용 본인의 언어로 정리하기오늘은 너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS)에 대해 공부했습니다. BFS는 그래프 탐색 알고리즘 중 한 종류로, 현재 노드와 인접한 모든 노드를 먼저 탐색하는 방식입니다. 이를 통해 최단 경로를 찾거나 특정 상태에 도달하는 데 사용됩니다. 반면에 DFS는 현재 노드의 자식 노드를 먼저 탐색하는 방식으로, 그래프의 모든 노드를 탐색하거나 경로를 찾는 데 사용됩니다.오늘 푼 문제는 BFS를 사용하여 최단 경로를 찾는 문제를 풀었습니다.. 문제 해결을 위해 주어진 조건을 ..

Algorithm/Study 2024.06.09

[프로그래머스][JAVA] 87694. 아이템 줍기

💡 문제아이템 줍기 (https://school.programmers.co.kr/learn/courses/30/lessons/87694)자세한 문제 설명과 입출력 예는 링크를 참고해주세요.📝 선행 개념이 문제를 해결하려면 주로 그래프 탐색 알고리즘과 2차원 배열을 다루는 방법을 이해해야 합니다. 아래는 문제를 푸는 데 필요한 주요 개념들입니다.1. BFS (Breadth-First Search)BFS는 그래프 또는 트리의 탐색 알고리즘 중 하나로, 너비 우선 탐색이라고도 합니다. BFS는 특정 노드에서 시작하여 인접한 모든 노드를 방문한 후, 방문한 노드를 기준으로 다시 인접한 노드들을 방문하는 방식으로 진행됩니다. BFS의 주요 특징은 다음과 같습니다:최단 경로 탐색: BFS는 최단 경로 문제를 해..

[99클럽 코테 스터디] 📝 Day16. 탐욕법 == Kruskal 알고리즘

99클럽 코테 스터디 16일차 TIL + 탐욕법 == Kruskal 알고리즘📍 오늘의 학습 키워드Kruskal 알고리즘Union-Find 자료구조탐욕법 알고리즘최소 비용 신장 트리📝 공부한 내용 본인의 언어로 정리하기오늘은 Kruskal 알고리즘과 Union-Find 자료구조에 대해 공부했습니다. Kruskal 알고리즘은 최소 비용 신장 트리를 구하는 그리디 알고리즘 중 하나로, 각 단계에서 최소 비용의 간선을 선택하여 신장 트리를 만들어 나갑니다. 이 과정에서 사이클을 방지하기 위해 Union-Find 자료구조를 사용합니다. Union-Find는 서로소 집합을 표현하고 관리하는 자료구조로, 각 원소가 속한 집합을 찾거나 합치는 연산을 지원합니다.📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 ..

Algorithm/Study 2024.06.05

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

💡 문제모음사전 (https://school.programmers.co.kr/learn/courses/30/lessons/84512)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념완전탐색 (Brute Force):- 가능한 모든 경우의 수를 탐색하여 해답을 찾는 방법입니다. 이 문제에서는 'A', 'E', 'I', 'O', 'U'라는 5개의 문자로 만들 수 있는 길이 1부터 5까지의 모든 단어를 생성해야 합니다. 이를 통해 사전의 모든 단어를 구할 수 있습니다. 재귀 함수 (Recursive Function):- 함수가 자기 자신을 호출하여 문제를 해결하는 방법입니다. 이 문제에서는 재귀 함수를 사용하여 길이 1부터 5까지의 모든 단어를 생성합니다. 예를 들어, 현재 단어가 "A"..

📝 Day15. DFS

99클럽 코테 스터디 15일차 TIL + DFS📍 오늘의 학습 키워드그래프 탐색DFS (깊이 우선 탐색)연결된 컴포넌트 찾기인접 행렬📝 공부한 내용 본인의 언어로 정리하기오늘은 컴퓨터 네트워크 문제를 풀면서 DFS 알고리즘을 공부했다. DFS는 그래프에서 시작점부터 가능한 깊이까지 탐색한 후, 다시 돌아와 다른 경로를 탐색하는 방법이다. 이를 통해 연결된 모든 노드를 탐색할 수 있다. 네트워크 문제에서는 연결된 컴포넌트의 개수를 찾기 위해 각 컴퓨터를 방문하며 연결된 컴퓨터들을 모두 방문하는 DFS를 사용했다.📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지네트워크 문제를 처음 접했을 때, 컴퓨터 간의 연결 상태를 어떻게 효율적으로 탐색할지 고민했다. 처음에는 모든 가능한 경로를 일..

Algorithm/Study 2024.06.03

📝 Day14. BFS (너비 우선 탐색)

99클럽 코테 스터디 14일차 TIL + BFS (너비 우선 탐색)📍 오늘의 학습 키워드BFS (너비 우선 탐색)단어 변환 문제 해결📝 공부한 내용 본인의 언어로 정리하기오늘은 BFS 알고리즘을 활용하여 단어 변환 문제를 해결하는 방법을 공부했습니다. BFS는 최단 경로를 찾기 위해 널리 사용되는 알고리즘으로, 큐를 사용하여 단계별로 모든 가능한 경로를 탐색합니다. 이번 문제에서는 시작 단어에서 목표 단어까지 도달하는 가장 짧은 변환 과정을 찾아야 했습니다.📖 오늘의 회고📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지문제는 두 단어 사이의 변환 과정을 찾아야 하는 것이었습니다. 변환은 한 번에 한 글자만 변경할 수 있으며, 각 단계에서 변환된 단어는 주어진 단어 리스트에 존재해야 합니다. 이 문..

Algorithm/Study 2024.06.03

[프로그래머스][JAVA] 86971. 전력망을 둘로 나누기

💡 문제전력망을 둘로 나누기 (https://school.programmers.co.kr/learn/courses/30/lessons/86971)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념🤓 문제 풀이주어진 문제는 송전탑 네트워크에서 하나의 전선을 끊어 두 개의 전력망으로 나누었을 때, 각 전력망이 가지고 있는 송전탑 개수의 차이를 최소화하는 것입니다. 이를 위해, 각 전선을 하나씩 끊어보고, 끊어진 두 개의 전력망의 송전탑 개수를 계산한 후, 차이를 비교하여 최소값을 찾아야한다.송전탑의 개수가 최대한 비슷하도록 두 전력망으로 나누는 것입니다. 이는 그래프에서 하나의 엣지를 끊고 연결된 두 컴포넌트의 크기를 계산하는 문제로 접근할 수 있습니다. 입출력 예 1)- 4번과 7번을..

[99클럽 코테 스터디] 📝 Day12. DFS/백트래킹

부제 : TMI 허리디스크가 재발하여 병원을 다니며,,, 1일1커밋을 이번주 못했다.. 한 번에 몰아넣기...아쉽다. 야근도 하고 회사 다니면서 공부하는 모든 직장인 화이팅 ㅠㅠ건강도 챙겨야하고 개발자 시장에서 도태되지않도록 공부도 꾸준하게 하고 인간관계도 노력해야하고 가족들도 챙겨야하고 인간의 삶..^^ 재밌네.. 99클럽 코테 스터디 12일차 TIL + DFS 📍 오늘의 학습 키워드DFS (깊이 우선 탐색)백트래킹그래프 탐색Java 자료구조 및 내장 함수 활용📝 공부한 내용 본인의 언어로 정리하기오늘은 DFS와 백트래킹을 활용해 주어진 항공권을 모두 이용하여 "ICN" 공항에서 출발해 모든 공항을 방문하는 경로를 찾는 문제를 풀어보았다. DFS는 한 경로를 끝까지 탐색하는 방식으로, 백트래킹은 조..

Algorithm/Study 2024.06.01

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

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

Algorithm/Study 2024.05.30