[JAVA] ⚙️ 자료구조 & 알고리즘 : Graph와 비선형 탐색 | 간단 정리 및 비교 💬
·
카테고리 없음
Graph와 비선형 탐색 📚Graph, 너비우선탐색(BFS)/ 깊이우선탐색 (DFS)📌 Graph (그래프)정의: 노드(Vertex, 정점)와 간선(Edge)으로 이루어진 자료구조종류방향 그래프 (Directed Graph) : 간선에 방향 존재 (A → B)무방향 그래프 (Undirected Graph) : 간선에 방향 없음 (A ↔ B)가중치 그래프 (Weighted Graph) : 간선에 비용/가중치 존재📌 그래프 탐색 방법1️⃣ 깊이 우선 탐색 (DFS: Depth First Search)한 방향으로 최대한 깊이 탐색 후, 더 이상 갈 곳이 없으면 백트래킹(되돌아감)보통 재귀 호출 또는 스택으로 구현적합한 상황: 모든 경우 탐색, 경로 찾기, 조합/순열 문제2️⃣ 너비 우선 탐색 (BFS:..
[JAVA] 알고리즘: 다양한 정렬 알고리즘 🔗 | 거품 정렬, 삽입 정렬, 선택 정렬, 퀵 정렬, 병합 정렬 | 간단 정리 및 비교 💬
·
카테고리 없음
다양한 정렬 알고리즘 🔗거품 정렬, 삽입 정렬, 선택 정렬, 퀵 정렬, 병합 정렬📌 거품 정렬 (Bubble Sort)인접한 두 원소를 비교하여 잘못된 순서라면 교환 → 큰 값이 점점 뒤로 "거품처럼" 밀려남시간 복잡도:최악/평균: O(n²)최선(이미 정렬된 경우): O(n)과정:[5, 3, 8, 4] → (5,3) 비교 → [3,5,8,4][3,5,8,4] → (5,8) 비교 → 그대로[3,5,8,4] → (8,4) 교환 → [3,5,4,8] 📌 삽입 정렬 (Insertion Sort)현재 원소를 그 앞의 정렬된 부분에 "삽입"시간 복잡도:최악/평균: O(n²)최선(이미 정렬): O(n)과정:[5, 3, 8, 4]→ 5 | 3,8,4→ 3,5 | 8,4→ 3,5,8 | 4→ 3,4..
[JAVA] ⚙️ 자료 구조 : Stack / Queue / Deque | 간단 비교 및 정리 💬
·
✏️공부/💡JAVA
Stack / Queue / Deque➡️ 순서를 가진 선형 구조📌 Stack정의: "쌓아 올린" 구조, LIFO (Last In, First Out)동작:push(x) → 맨 위에 데이터 넣기pop() → 맨 위에서 데이터 삭제하기peek() → 맨 위 데이터 확인 (삭제는 안 함)자바 구현: Stack, 또는 Deque를 이용해서 구현하는 게 더 권장됨✅ 사용 상황함수 호출(콜 스택)Undo/Redo 기능괄호 검사, 수식 계산 (예: 후위 표기법 계산기)📌 Queue정의: 줄 서기 구조, FIFO (First In, First Out)동작:offer(x) → 뒤(rear)에 데이터 넣기 poll() → 앞(front)에서 데이터 꺼내기 peek() → 맨 앞 데이터 확인 (삭제는 안 함)자바 ..
[프로그래머스|JAVA] 로또의 최고 순위와 최저 순위 | Set 활용, 향상된 for문 연습 중 💬, case 문
·
💻코딩/💡Programmers
[문제 링크] 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어집니다. 이때, 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 solution 함수를 완성해주세요. 📍 코드import java.util.*;class Solution { public int[] solution(int[] lottos, int[] win_nums) { Set winSet = new HashSet(); for (int w : win_nums) { ..
[프로그래머스|JAVA] 같은 숫자는 싫어 🙅‍♀️ | ArrayList, stream 방식, 향상된 for문 활용
·
💻코딩/💡Programmers
[문제 링크] 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 soluti..
[프로그래머스|JAVA] 의상 | 2️⃣번째 풀이 | Map 활용하여 간결 & 가독성 좋게 💡 , 향상된 for문, getOrDefault()
·
💻코딩/💡Programmers
[문제 링크] 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다.예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다.종류 이름얼굴 동그란 안경, 검정 선글라스상의 파란색 티셔츠하의 청바지겉옷 긴 코트코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다.착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더..