알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving)72 [순열 사이클 분할] 백준 10451 순열 사이클 이번 포스트에서는 백준 10451번 문제인 "순열 사이클"을 파이썬으로 풀이한 방법을 공유하고자 합니다. 이 문제는 주어진 순열 내에서 사이클이 몇 개 존재하는지를 찾는 문제로, DFS(깊이 우선 탐색)를 활용하여 해결할 수 있습니다.순열 사이클 분할 설명순열 사이클 분할은 주어진 순열을 사이클 구조로 분해하는 과정입니다. 순열은 각 요소가 다른 요소로 매핑되는 일종의 함수입니다. 이때, 순환 구조(사이클)를 찾는다는 것은 해당 순열 내에서 자기 자신으로 돌아오는 경로를 찾는 것을 의미합니다.예를 들어, 순열이 다음과 같이 주어졌다고 가정합니다:( \text{순열} = [2, 3, 1, 5, 6, 4] )이 순열에서 사이클을 찾아보면:1 → 2 → 3 → 1 (사이클 형성)4 → 5 → 6 → 4 (사이.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 8. 10. [다익스트라] 백준 1753 최단경로 이번 포스팅에서는 백준 1753번 문제를 다익스트라 알고리즘을 활용하여 풀이하는 방법을 다뤄보겠습니다. 이 문제는 특정 시작점에서 다른 모든 정점으로 가는 최단 경로를 찾는 문제로, 그래프 이론에서 자주 등장하는 문제 유형입니다.문제 설명주어진 그래프에서 시작점으로부터 다른 모든 정점으로의 최단 경로를 구하는 문제입니다. 그래프는 방향성이 있으며, 간선마다 가중치가 부여되어 있습니다. 다익스트라 알고리즘은 이와 같은 가중 그래프에서의 최단 경로 문제를 효율적으로 해결할 수 있는 알고리즘입니다.다익스트라 알고리즘 개요다익스트라 알고리즘은 그래프 이론에서 가장 널리 사용되는 최단 경로 탐색 알고리즘 중 하나입니다. 이 알고리즘은 가중치가 있는 그래프에서, 하나의 시작 정점으로부터 다른 모든 정점으로 가는 최.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 8. 10. [등차수열] 백준 2108 수들의 합 이번 포스팅에서는 백준 2108번 문제를 효율적으로 풀이하는 방법을 다뤄보겠습니다. 이 문제는 특정 수 ( N )을 등차수열로 나타낼 수 있는 모든 경우의 수를 구하는 문제입니다. 특히 이 문제는 자기 자신을 포함한 수열을 고려하는 것을 요구합니다.문제 분석주어진 숫자 ( N )을 자기 자신도 포함하여 하나 이상의 자연수로 이루어진 등차수열로 나타낼 수 있는 모든 경우의 수를 찾는 것이 목표입니다. 수열의 길이가 1 이상인 등차수열을 찾는 과정에서 우리는 ( N )의 약수와 관련된 규칙을 활용할 수 있습니다.핵심 개념등차수열이란?: 등차수열은 연속된 수들의 합입니다. 예를 들어, 1, 2, 3, 4, 5는 모두 연속된 수들이므로, 그 합은 15입니다. 이 문제에서는 어떤 수 ( N )을 연속된 자연수들의.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2024. 8. 10. [자료구조/큐] 백준 18258 큐2 package 큐덱; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; /** * push * pop * size * empty * front * back * 명령 수 1 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 12. 18. [누적합]백준 25682 체스판 다시 칠하기 2 package 누적합; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class boj_25682_체스판다시칠하기2 { private static int N, M, K, answer; private static String[][] board; private static int[][][] accSum; public static void main(String[] args) throws IOException { // 1. M x N 크기의 2차원 배열 입력 // 2. 검, 흰 두 가지의 색으로 칠해져 있음 // 3. 아무 곳을 기준으로 K x K 만큼 자르기 // 4. 칠해야 하.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 12. 7. 백준 16430 제리와 톰 package 단순구현; import java.util.Scanner; public class boj_16430_제리와톰 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); System.out.print(B-A +" " + B); } } 해당 문제는 다른 문제를 풀다가 머리 식힐겸 풀게된 문제인데 문제는 마치 나눗셈을 유도하는 듯 하지만 나누기연산의 개념이 다른 컴퓨터 내부작동 원리를 어떻게 해결할 지 물어보는 문제 같다. 1kg 기준으로 기약분수 꼴로 나눠야 하므로 결국 1 * B - A / B를 묻는 거나 다름이 없기에 B-A와 B를.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 12. 5. [큐] 백준 15828 Router package 큐덱; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class boj_15828_Router { private static Queue router; public static void main(String[] args) throws IOException { router = new LinkedList(); int routerSize, packetCount = 0; BufferedReader br = new BufferedReader(new InputStreamReade.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 12. 3. [다익스트라]백준 20182 골목 대장 호석 - 효율성 1 package 다익스트라; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.PriorityQueue; public class boj_20182_골목대장호석효율성1 { private static int n, m, a, b, c, maxCost, cost[]; private static List[] v; static class Node implements Comparable{ int node; int cost; int shy; Node .. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 12. 2. [DP]백준 9095 1, 2, 3 더하기 & 15988 1, 2, 3 더하기 3 package DP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class boj_15988_123더하기3 { private static int testcaseNumber, dp[], testcaseArr[]; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); testcaseNumber = Integer.parseInt(br.readLine()); test.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 12. 1. [DP]백준 14501 퇴사, 15486 퇴사 2 package DP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class boj_14501_퇴사 { // 1. 뒤에서 부터 For문을 돌기 // 2. 해당 배열 순서 + 경과 기간 >= N 이면 넘기기 // 3. 합의 최댓값 으로 갱신 해두기 static class Consult { int time; int profit; Consult(int time, int profit) { this.time = time; this.profit = profit; } } public static void main(Str.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 12. 1. 백준 24060 알고리즘 수업 - 병합 정렬 1 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int count, answer, N, K , A[], tmp[]; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer stz = new StringTokenizer(br.readLine()); N = Integer.pa.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 11. 28. 백준 25501 재귀의 귀재(재귀) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class boj_25501_재귀의귀재 { static int count; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int T = Integer.parseInt(br.readLine()); int answer[][] = new int[T][2]; for(int i.. 알고리즘공부(Algorithm Study)/문제풀이(ProblemSolving) 2022. 11. 26. 이전 1 2 3 4 ··· 6 다음 728x90