[JAVA][Baekjoon] 2023번 신기한 소수
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/2023📌 접근 방식DFS(깊이 우선 탐색) 을 사용했다! 한 자리씩 숫자를 추가하면서 신기한 소수를 탐색하기에 적합하기 때문숫자를 추가할 때마다 소수인지 확인하고, 조건에 맞지 않으면 더 이상 탐색하지 않는다.이렇게 하면 불필요한 연산을 줄일 수 있음! 🛠example) 시작 숫자가 7이라면1️⃣ 7 → 소수 맞네! 더 탐색!2️⃣ 73 → 소수네? 한 자리 더 추가!3️⃣ 733 → 오, 또 소수야! 더 가보자!4️⃣ 7331 → 완성! 신기한 소수 발견! 🎉  [알고리즘] 깊이 우선 탐색 : DFS(Depth-First-Search)📌  깊이 우선 탐색이란?그래프 탐색 기법그래프 완전 탐색 기법 중 하나그래프에서 시작 노드에서 출발하여..
[JAVA][Baekjoon] 10989번 수 정렬하기 3 🌟
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/11724📌 접근 방식1️⃣ 접근 방식그래프의 표현입력된 정점과 간선 정보는 인접 리스트를 사용하여 그래프 표현인접 리스트 : 정점마다 연결된 다른 정점들의 목록을 저장하는 구조로, 메모리 사용량이 적고 효율적인 탐색이 가능함ex) 간선 정보가 (1, 2)와 (2, 3)이라면 인접 리스트는 1: [2]  2: [1, 3]  3: [2]방문 배열 사용그래프 탐색 과정에서 방문한 노드를 다시 방문하지 않기 위해 방문 배열(visited) 사용visited[i]가 True라면, 정점 i는 이미 방문한 상태를 의미DFS 탐색방문하지 않은 정점을 시작으로 DFS를 호출하여, 해당 정점과 연결된 모든 정점을 탐색DFS가 끝나면 하나의 연결 요소 탐색이 완료..
[JAVA][Baekjoon] 10989번 수 정렬하기 3 🌟🌟🌟🌟🌟
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/10989 📌 접근 방식이 문제는 N의 최대 개수가 10,000,000으로 매우 크기 때문에 O(nlogn) 보다 더 빠른 알고리즘이 필요하다.그렇기 때문에 기수 정렬을 사용해 풀어보았다. [알고리즘] 기수 정렬(Radix Sort)이란?정렬 알고리즘정의버블 (bubble)데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 선택 (selection)대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정nyeroni.tistory.com  ✅ PASS CODEimport java.io.*;public class Main { public static int[] arr; public static void mai..
[JAVA][Baekjoon] 1517번 버블 소트 🌟🌟🌟
·
Coding Test/Baekjoon
https://www.acmicpc.net/problem/1517 📌 접근 방식제목은 버블 소트이지만, N의 최대 범위가 500,000이므로 버블 정렬을 이용한다면 시간 초과가 발생한다!➡️ 그래서 O(nlogn)의 시간 복잡도를 가진 병합 정렬을 사용해 풀어보았다 [알고리즘] 병합 정렬(Merge Sort)이란?정렬 알고리즘정의버블 (bubble)데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 선택 (selection)대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정nyeroni.tistory.com 여기서 버블 정렬의 swap의 횟수는 이동한 index로 계산하면 된다!  ✅ PASS CODEimport java.io.*;import java.util.Stri..