Algorithm 74

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

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

Algorithm/Study 2024.06.03

[프로그래머스][JAVA] 84021. 퍼즐조각채우기

💡 문제퍼즐조각채우기(https://school.programmers.co.kr/learn/courses/30/lessons/84021)자세한 문제 설명과 입출력 예는 링크를 참고해주세요. 📝 선행 개념🤓 문제 풀이문제 설명주어진 문제는 게임 보드의 빈 공간에 테이블 위의 퍼즐 조각을 적절히 놓아서 최대한 많은 칸을 채우는 것입니다. 퍼즐 조각을 회전시킬 수는 있지만 뒤집을 수는 없습니다. 각 퍼즐 조각은 인접한 칸이 비어있으면 안 됩니다.문제 접근 방법퍼즐 조각 추출:BFS를 사용하여 테이블에서 퍼즐 조각을 추출합니다.퍼즐 조각을 추출할 때, 모든 가능한 회전을 고려하여 저장합니다.빈 공간 추출:BFS를 사용하여 게임 보드에서 빈 공간을 추출합니다.퍼즐 조각 맞추기:각 빈 공간에 대해 모든 퍼즐 ..

[프로그래머스][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

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

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

Algorithm/Study 2024.05.30

[프로그래머스][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 이하인 단어들이 사전에서 몇 번째 위치에 있는지 찾는 문제를 풀었습니다. 처음에는 각 자리의 알파벳 위치를 계산하고, 가중치를 곱하여..

Algorithm/Study 2024.05.28

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

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

Algorithm/Study 2024.05.27

[리트코드][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"를 얻습니다.두 번..