From ae3aa29fb7e933c98f0c9ea2dfbd6cd6f8b3db92 Mon Sep 17 00:00:00 2001 From: dlwldn30 Date: Mon, 24 Mar 2025 21:41:14 +0900 Subject: [PATCH 1/6] =?UTF-8?q?=EB=8F=8C=EA=B2=8C=EC=9E=84=2030M,=20?= =?UTF-8?q?=ED=95=A9=EB=B6=84=ED=95=B4=201H?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week2/.idea/.gitignore | 8 ++ week2/.idea/git_toolbox_blame.xml | 6 ++ week2/.idea/material_theme_project_new.xml | 10 +++ week2/.idea/misc.xml | 6 ++ week2/.idea/modules.xml | 8 ++ week2/.idea/vcs.xml | 6 ++ week2/.idea/week2.iml | 11 +++ .../dlwldn30/Main.java" | 20 +++++ .../dlwldn30/Main.java" | 14 +++ .../dlwldn30/Main.java" | 28 ++++++ week2/out/production/week2/README.md | 82 ++++++++++++++++++ .../dlwldn30/Main.class" | Bin 0 -> 1030 bytes 12 files changed, 199 insertions(+) create mode 100644 week2/.idea/.gitignore create mode 100644 week2/.idea/git_toolbox_blame.xml create mode 100644 week2/.idea/material_theme_project_new.xml create mode 100644 week2/.idea/misc.xml create mode 100644 week2/.idea/modules.xml create mode 100644 week2/.idea/vcs.xml create mode 100644 week2/.idea/week2.iml create mode 100644 "week2/dynamic_programming/\353\217\214\352\262\214\354\236\204/dlwldn30/Main.java" create mode 100644 "week2/dynamic_programming/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.java" create mode 100644 "week2/dynamic_programming/\355\225\251\353\266\204\355\225\264/dlwldn30/Main.java" create mode 100644 week2/out/production/week2/README.md create mode 100644 "week2/out/production/week2/\353\217\214\352\262\214\354\236\204/dlwldn30/Main.class" diff --git a/week2/.idea/.gitignore b/week2/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/week2/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/week2/.idea/git_toolbox_blame.xml b/week2/.idea/git_toolbox_blame.xml new file mode 100644 index 00000000..7dc12496 --- /dev/null +++ b/week2/.idea/git_toolbox_blame.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/week2/.idea/material_theme_project_new.xml b/week2/.idea/material_theme_project_new.xml new file mode 100644 index 00000000..0acefebe --- /dev/null +++ b/week2/.idea/material_theme_project_new.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/week2/.idea/misc.xml b/week2/.idea/misc.xml new file mode 100644 index 00000000..31e1ebce --- /dev/null +++ b/week2/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/week2/.idea/modules.xml b/week2/.idea/modules.xml new file mode 100644 index 00000000..11a061b8 --- /dev/null +++ b/week2/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/week2/.idea/vcs.xml b/week2/.idea/vcs.xml new file mode 100644 index 00000000..6c0b8635 --- /dev/null +++ b/week2/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/week2/.idea/week2.iml b/week2/.idea/week2.iml new file mode 100644 index 00000000..37cf0eb4 --- /dev/null +++ b/week2/.idea/week2.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/week2/dynamic_programming/\353\217\214\352\262\214\354\236\204/dlwldn30/Main.java" "b/week2/dynamic_programming/\353\217\214\352\262\214\354\236\204/dlwldn30/Main.java" new file mode 100644 index 00000000..3a4225d2 --- /dev/null +++ "b/week2/dynamic_programming/\353\217\214\352\262\214\354\236\204/dlwldn30/Main.java" @@ -0,0 +1,20 @@ +package 돌게임.dlwldn30; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + int N = Integer.parseInt(br.readLine()); + + if(N%2==0){ + System.out.println("CY"); + } + else { + System.out.println("SK"); + } + } +} diff --git "a/week2/dynamic_programming/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.java" "b/week2/dynamic_programming/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.java" new file mode 100644 index 00000000..4b81620f --- /dev/null +++ "b/week2/dynamic_programming/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.java" @@ -0,0 +1,14 @@ +package 선수과목.dlwldn30; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + int N = Integer.parseInt(br.readLine()); + int M = Integer.parseInt(br.readLine()); + } +} diff --git "a/week2/dynamic_programming/\355\225\251\353\266\204\355\225\264/dlwldn30/Main.java" "b/week2/dynamic_programming/\355\225\251\353\266\204\355\225\264/dlwldn30/Main.java" new file mode 100644 index 00000000..1d123b1b --- /dev/null +++ "b/week2/dynamic_programming/\355\225\251\353\266\204\355\225\264/dlwldn30/Main.java" @@ -0,0 +1,28 @@ +package 합분해.dlwldn30; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + int N = Integer.parseInt(br.readLine()); + int K = Integer.parseInt(br.readLine()); + + int[][] dp= new int[K+1][N+1]; + + for (int i = 0; i <= N; i++){ + dp[1][i] = 1; + } + + for (int i = 2; i <= K; i++){ + for (int n = 0; n <= N; n++){ + dp[i][n] = (dp[i][n-1] + dp[i-1][n]) % 1000000000; + } + } + System.out.println(dp[K][N]); + } + +} diff --git a/week2/out/production/week2/README.md b/week2/out/production/week2/README.md new file mode 100644 index 00000000..3f5a6668 --- /dev/null +++ b/week2/out/production/week2/README.md @@ -0,0 +1,82 @@ +# Dynamic Programming 1 (동적계획법 1) + +[메인으로 돌아가기](https://github.com/Alom-codingTest/alom-codingTest-25-1) + +다이나믹 프로그래밍 유형 쉬운 문제 위주로 뽑았습니다. +다이나믹 프로그래밍은 점화식을 세우면 절반 이상은 풀었다고 볼 수 있습니다. +점화식 세우는 건 금방 익히기 힘들어 코딩테스트에 나올만한 문제들, +다이나믹 프로그래밍을 공부할만한 문제들을 최대한 뽑았습니다. + +| 순번 | 문제 번호 | 문제 이름 | 난이도 | +|:---:|:-------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------:| +| 000 | 10870 | 피보나치 수 5 | | +| 001 | 2748 | 피보나치 수 2 | | +| 002 | 1010 | 다리 놓기 | | +| 003 | 9655 | 돌 게임 | | +| 004 | 2839 | 설탕 배달 | | +| 005 | 1463 | 1로 만들기 | | +| 006 | 2579 | 계단 오르기 | | +| 007 | 11726 | 2×n 타일링 | | +| 008 | 2407 | 조합 | | +| 009 | 17626 | Four Squares | | +| 010 | 11727 | 2×n 타일링 2 | | +| 011 | 9095 | 1, 2, 3 더하기 | | +| 012 | 1912 | 연속합 | | +| 013 | 11053 | 가장 긴 증가하는 부분 수열 | | +| 014 | 22857 | 가장 긴 짝수 연속한 부분 수열 (small) | | +| 015 | 11055 | 가장 큰 증가하는 부분 수열 | | +| 016 | 21317 | 징검다리 건너기 | | +| 017 | 10844 | 쉬운 계단 수 | | +| 018 | 1890 | 점프 | | +| 019 | 2156 | 포도주 시식 | | +| 020 | 22869 | 징검다리 건너기 (small) | | +| 021 | 11660 | 구간 합 구하기 5 | | +| 022 | 9465 | 스티커 | | +| 023 | 2294 | 동전 2 | | +| 024 | 15486 | 퇴사 2 | | +| 025 | 1106 | 호텔 | | +| 026 | 2293 | 동전 1 | | + +# Dynamic Programming 2 (동적계획법 2) + +[메인으로 돌아가기](https://github.com/Alom-codingTest/alom-codingTest-25-1) + +다이나믹 프로그래밍 유형 문제 위주로 뽑았습니다. + +다이나믹 프로그래밍은 점화식을 세우면 절반 이상은 풀었다고 볼 수 있습니다. + +점화식 세우는 건 금방 익히기 힘들어 코딩테스트에 나올만한 문제들, +다이나믹 프로그래밍을 공부할만한 문제들을 최대한 뽑았습니다. + +풀어보면 좋을 문제는 추천 문제에 체크(:heavy_check_mark:) 해놨습니다. + +| 순번 | 문제 번호 | 문제 이름 | 난이도 | +|:---:|:-------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------:| +| 000 | 15724 | 주지수 | || +| 001 | 12865 | 평범한 배낭 | || +| 002 | 9251 | LCS | |바로 가기| +| 003 | 2225 | 합분해 | || +| 004 | 5557 | 1학년 | |바로 가기| +| 005 | 17485 | 진우의 달 여행 (Large) | |바로 가기| +| 006 | 14567 | 선수과목 (Prerequisite) | |바로 가기| +| 007 | 9084 | 동전 | || +| 008 | 2758 | 로또 | || +| 009 | 1915 | 가장 큰 정사각형 | || +| 010 | 10942 | 팰린드롬? | || +| 011 | 2073 | 수도배관공사 | || +| 012 | 18427 | 함께 블록 쌓기 | |바로 가기| +| 013 | 2056 | 작업 | || +| 014 | 21941 | 문자열 제거 | || +| 015 | 21923 | 곡예 비행 | |바로 가기| +| 016 | 2624 | 동전 바꿔주기 | || +| 017 | 2631 | 줄세우기 | || +| 018 | 1520 | 내리막 길 | |바로 가기| +| 019 | 2228 | 구간 나누기 | || +| 020 | 1005 | ACM Craft | |바로 가기| +| 021 | 2629 | 양팔저울 | || +| 022 | 1695 | 팰린드롬 만들기 | || +| 023 | 11049 | 행렬 곱셈 순서 | || +| 024 | 1823 | 수확 | || +| 025 | 20542 | 받아쓰기 | || +| 026 | 3687 | 성냥개비 | |바로 가기| +| 027 | 20181 | 꿈틀꿈틀 호석 애벌레 - 효율성 | || \ No newline at end of file diff --git "a/week2/out/production/week2/\353\217\214\352\262\214\354\236\204/dlwldn30/Main.class" "b/week2/out/production/week2/\353\217\214\352\262\214\354\236\204/dlwldn30/Main.class" new file mode 100644 index 0000000000000000000000000000000000000000..3e99a8d5a3bf407f452ccc67f9b006bd85df6207 GIT binary patch literal 1030 zcmZ`&%W@Jy6g>?j4a0;akPw1VllX!}GttB+d1z3pC`n?8MODgG!*p;W4Ae0A*t<-X zI~Ok8x|T(-OqCztr>MW6=3rwrjjkYM1m7I&2dJ@SxhnvANi88U0IS2QPhM} zmlRUbUA5y3$&BiFTE{t@C-bTeg*&YLF{yOzN%?V+n$JDbkU)}SM#n5JQws-19K$m3 zntHRWoa!Z-_hXL8(pwz!3}Zjv?fz)){`&aVFw3vXroAw4tP5qcFI_dM_d#XBMx#=Y z&Qnn+(@i*AEsAnpIF^dLmp=EoRi_^}`yaj(5mwr~(ZsWV%}nMgFPsulM0%vD-U9g< zJ2dCyToF0jpeMsHkaI=x#k#0<>(U;)F3Or~RqZ;*y3&SmpWM}s<_64VwC;Dn15Ncv7d|?llJ|U=%SLmp;yii(kQd7KP z1nE40NrY%9hDkfp)}QQX;1+HZE{tj1L5gaM({~BWRLct8)1Uh{W;r Date: Mon, 31 Mar 2025 21:30:24 +0900 Subject: [PATCH 2/6] =?UTF-8?q?N=EA=B3=BCM(6)=201H?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week3/.idea/.gitignore | 8 +++ week3/.idea/material_theme_project_new.xml | 10 ++++ week3/.idea/vcs.xml | 4 ++ .../N\352\263\274M_6/dlwldn30/Main.java" | 49 +++++++++++++++++++ .../dlwldn30/Main.java" | 0 5 files changed, 71 insertions(+) create mode 100644 week3/.idea/.gitignore create mode 100644 week3/.idea/material_theme_project_new.xml create mode 100644 week3/.idea/vcs.xml create mode 100644 "week3/backtracking/N\352\263\274M_6/dlwldn30/Main.java" create mode 100644 "week3/brute_force/\353\270\224\353\236\231\354\236\255/dlwldn30/Main.java" diff --git a/week3/.idea/.gitignore b/week3/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/week3/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/week3/.idea/material_theme_project_new.xml b/week3/.idea/material_theme_project_new.xml new file mode 100644 index 00000000..7c10705f --- /dev/null +++ b/week3/.idea/material_theme_project_new.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/week3/.idea/vcs.xml b/week3/.idea/vcs.xml new file mode 100644 index 00000000..d843f340 --- /dev/null +++ b/week3/.idea/vcs.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git "a/week3/backtracking/N\352\263\274M_6/dlwldn30/Main.java" "b/week3/backtracking/N\352\263\274M_6/dlwldn30/Main.java" new file mode 100644 index 00000000..09478d08 --- /dev/null +++ "b/week3/backtracking/N\352\263\274M_6/dlwldn30/Main.java" @@ -0,0 +1,49 @@ +package N과M_6.dlwldn30; + +import java.io.*; +import java.util.*; + +public class Main { + static int N, M; + static int[] arr; + static List output = new ArrayList<>(); + static StringBuilder sb = new StringBuilder(); + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + // 입력 + StringTokenizer st = new StringTokenizer(br.readLine()); + N = Integer.parseInt(st.nextToken()); + M = Integer.parseInt(st.nextToken()); + + arr = new int[N]; + st = new StringTokenizer(br.readLine()); + for (int i = 0; i < N; i++) { + arr[i] = Integer.parseInt(st.nextToken()); + } + + Arrays.sort(arr); // 사전순 출력을 위해 정렬 + + solve(0, 0); + + System.out.print(sb); + } + + static void solve(int start, int depth) { + if (depth == M) { + for (int num : output) { + sb.append(num).append(' '); + } + sb.append('\n'); + return; + } + + for (int i = start; i < N; i++) { + output.add(arr[i]); + solve(i + 1, depth + 1); + output.remove(output.size() - 1); + } + } +} + + diff --git "a/week3/brute_force/\353\270\224\353\236\231\354\236\255/dlwldn30/Main.java" "b/week3/brute_force/\353\270\224\353\236\231\354\236\255/dlwldn30/Main.java" new file mode 100644 index 00000000..e69de29b From 756802b0a618f1cd48b72b1631519343b6598b26 Mon Sep 17 00:00:00 2001 From: dlwldn30 Date: Mon, 31 Mar 2025 21:32:09 +0900 Subject: [PATCH 3/6] =?UTF-8?q?=EB=B8=94=EB=9E=99=EC=9E=AD=2030M?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dlwldn30/Main.java" | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git "a/week3/brute_force/\353\270\224\353\236\231\354\236\255/dlwldn30/Main.java" "b/week3/brute_force/\353\270\224\353\236\231\354\236\255/dlwldn30/Main.java" index e69de29b..13638460 100644 --- "a/week3/brute_force/\353\270\224\353\236\231\354\236\255/dlwldn30/Main.java" +++ "b/week3/brute_force/\353\270\224\353\236\231\354\236\255/dlwldn30/Main.java" @@ -0,0 +1,38 @@ +package 블랙잭.dlwldn30; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.StringTokenizer; + +public class Main { + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int N = Integer.parseInt(st.nextToken()); + int M = Integer.parseInt(st.nextToken()); + int max = 0; + + int[] cards = new int[N]; + st = new StringTokenizer(br.readLine()); + + for (int i = 0; i < N; i++) { + cards[i] = Integer.parseInt(st.nextToken()); + } + + for (int i = 0; i < N - 2; i++) { + for (int j = i + 1; j < N - 1; j++) { + for (int k = j + 1; k < N; k++) { + int sum = cards[i] + cards[j] + cards[k]; + if (sum <= M) { + max = Math.max(max, sum); + } + } + } + } + + System.out.println(max); + } +} From 442fb802713acdfbbef54cbba74b098852f2c21d Mon Sep 17 00:00:00 2001 From: dlwldn30 Date: Tue, 1 Apr 2025 00:03:10 +0900 Subject: [PATCH 4/6] =?UTF-8?q?=EB=B8=94=EB=9E=99=EC=9E=AD=201H?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dlwldn30/Main.java" | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 "week3/brute_force/\354\240\234\352\263\261\354\210\230\354\260\276\352\270\260/dlwldn30/Main.java" diff --git "a/week3/brute_force/\354\240\234\352\263\261\354\210\230\354\260\276\352\270\260/dlwldn30/Main.java" "b/week3/brute_force/\354\240\234\352\263\261\354\210\230\354\260\276\352\270\260/dlwldn30/Main.java" new file mode 100644 index 00000000..d882277e --- /dev/null +++ "b/week3/brute_force/\354\240\234\352\263\261\354\210\230\354\260\276\352\270\260/dlwldn30/Main.java" @@ -0,0 +1,4 @@ +package 제곱수찾기.dlwldn30; + +public class Main { +} From 223cb5eb9af9d53995a08a1ca4102dca991b6fff Mon Sep 17 00:00:00 2001 From: dlwldn30 Date: Sun, 18 May 2025 18:31:19 +0900 Subject: [PATCH 5/6] =?UTF-8?q?=EC=84=A0=EC=88=98=EA=B3=BC=EB=AA=A9=20/=20?= =?UTF-8?q?50m?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week6/.idea/.gitignore | 8 +++ week6/.idea/git_toolbox_blame.xml | 6 ++ week6/.idea/material_theme_project_new.xml | 12 ++++ week6/.idea/misc.xml | 6 ++ week6/.idea/modules.xml | 8 +++ week6/.idea/vcs.xml | 6 ++ week6/.idea/week6.iml | 11 +++ week6/out/production/week6/README.md | 14 ++++ .../dlwldn30/Main.class" | Bin 0 -> 2723 bytes .../dlwldn30/Main.java" | 67 ++++++++++++++++++ 10 files changed, 138 insertions(+) create mode 100644 week6/.idea/.gitignore create mode 100644 week6/.idea/git_toolbox_blame.xml create mode 100644 week6/.idea/material_theme_project_new.xml create mode 100644 week6/.idea/misc.xml create mode 100644 week6/.idea/modules.xml create mode 100644 week6/.idea/vcs.xml create mode 100644 week6/.idea/week6.iml create mode 100644 week6/out/production/week6/README.md create mode 100644 "week6/out/production/week6/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.class" create mode 100644 "week6/topological_sorting/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.java" diff --git a/week6/.idea/.gitignore b/week6/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/week6/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/week6/.idea/git_toolbox_blame.xml b/week6/.idea/git_toolbox_blame.xml new file mode 100644 index 00000000..7dc12496 --- /dev/null +++ b/week6/.idea/git_toolbox_blame.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/week6/.idea/material_theme_project_new.xml b/week6/.idea/material_theme_project_new.xml new file mode 100644 index 00000000..e5402825 --- /dev/null +++ b/week6/.idea/material_theme_project_new.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/week6/.idea/misc.xml b/week6/.idea/misc.xml new file mode 100644 index 00000000..31e1ebce --- /dev/null +++ b/week6/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/week6/.idea/modules.xml b/week6/.idea/modules.xml new file mode 100644 index 00000000..9b9bc1f4 --- /dev/null +++ b/week6/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/week6/.idea/vcs.xml b/week6/.idea/vcs.xml new file mode 100644 index 00000000..6c0b8635 --- /dev/null +++ b/week6/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/week6/.idea/week6.iml b/week6/.idea/week6.iml new file mode 100644 index 00000000..01ea8e96 --- /dev/null +++ b/week6/.idea/week6.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/week6/out/production/week6/README.md b/week6/out/production/week6/README.md new file mode 100644 index 00000000..c8570aff --- /dev/null +++ b/week6/out/production/week6/README.md @@ -0,0 +1,14 @@ +# Topological Sorting (위상정렬) + +[메인으로 돌아가기](https://github.com/Alom-codingTest/alom-codingTest-25-1) + +위상정렬 문제를 뽑아봤습니다. +계보 복원가 호석은 위상정렬로 말고 다른 풀이로도 풀이 가능합니다. + +| 순번 | 문제 번호 | 문제 이름 | 난이도 | +|:---:|:-------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------:| +| 000 | 14567 | 선수과목 (Prerequisite) | || +| 001 | 1005 | ACM Craft | || +| 002 | 2623 | 음악프로그램 | || +| 003 | 2252 | 줄 세우기 | || +| 004 | 1766 | 문제집 | || \ No newline at end of file diff --git "a/week6/out/production/week6/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.class" "b/week6/out/production/week6/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.class" new file mode 100644 index 0000000000000000000000000000000000000000..24f141a5e6cf75b4f2f377eb19f6d9374544a972 GIT binary patch literal 2723 zcmZ`*+jA3D82_C#?PfR2tu$@JO;D&Ur40%OZJ}}zFc1jPQd&S{+ib(qbQ6*dP*4%A z0^aa0;EdzQ1Eb@E;!H~|!}#En<3HexGy3A_C^J6G0QGk^X`4dnba&4=-}n8#-}x@* zTBW`9CXad18S;S7~oK`1e8hv@O3LVoFOxH03Gbed!?aw-9pMb}* z1p?725SlfpD3=^(3sl!msZ!UjK|w$&RSL|WP|CY+mgK9)2<99s86rE&PPC+l5>2(u$H){nw&lWIig@G_vc!=+gO*$82wQz>u9J$i60GU zR1ng!9FGZ1pU{&k%%TyG--DdbbaUNaX}dzlN<2Zmgy}Mf6z{&EDR;3-$CG$UKsjn8 zb7riEWl=jxx3HmR136G;JX^3)$0lqR@TODAHV<&bgXw}gs*_2N(9aAC2Lq>Kx^DK4Sb?kA;$;2z@6sU4dib`aC&PuXr zG<2XuzV_>Q4hPt7MmlZUOwqi_;mj9a!K&GZg92iqH0+Xw-2x3$mEnDrI|d-T(bUm{ z1mls)$yASb)eg2rp>UI)|(*!xMclBn!^l=R#N3?z=ApJP8;(i%*1)!KaHc=*}_yUL%tr_UtK) zcszAcqk23_lMg?-^vL#_o0m^@zEDMQw}K~KS=>xyOzzOLj~skiv(MxaNcd7iHZxDh zA{f~!v@Ja%n}TOXk;v^6*EP2g%nRE6IHll>fVS~?x0!aVl$}-ZNl_6+V&f8OwWe~JZgZ0* z%R!ap(kL4Vi;(8UCI38NXi&y?hO-dAg5T1mLlED(;w;}%4EW&it>+bx!%@yu9K&&f z(75C{fpkE8Is&D01ZwA1_=hlS2o=#0RCU%5A~=Nk+m;Pt;Wa$cQuv0w^SuYJYfYv3 zPuU3SI)_l-q?Ckx0pI+~s17QHwP7stV9$V0Tp9h#l?J?DVDl8%VRZ~#3n~G17>|4K z0~!L_HH7mZ!P0=XztMXz=AvC2K@**>Zt{70nT$nbtUnedW&&!q_vQ zk?EgT5f7?^I5db}nNlxgN&bNrr1i@1cfZmA8DON2iA>DfombvVh9O8*P-0!JDW z*jkX@pl_+C(%UL`?SO=36B;SK)c8Nu&(lZ<@aMLpieJLGqs=#@mvYrQ+J z^&WTeK4mdXALYhW1s^C-6jTYJ;6wMnfsJ+xb8f>UZehzE_!Y)u;VqQjK|Pgr-e!ny bq2fPyJg%^Vv$^<)pk8j|V?Gx+_Tb|GhM$*T literal 0 HcmV?d00001 diff --git "a/week6/topological_sorting/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.java" "b/week6/topological_sorting/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.java" new file mode 100644 index 00000000..5b73d836 --- /dev/null +++ "b/week6/topological_sorting/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.java" @@ -0,0 +1,67 @@ +package 선수과목.dlwldn30; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.*; + +public class Main { + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int n = Integer.parseInt(st.nextToken()); // 과목 수 + int m = Integer.parseInt(st.nextToken()); // 선수 조건 수 + + int[] degree = new int[n+1]; // 선수 과목들 수 + int[] semester = new int[n+1]; + + List> array = new ArrayList>(); + for (int i = 0; i <=n; i++) { + array.add(new ArrayList<>()); + } + + for (int i = 0; i queue = new LinkedList<>(); + + + //선수 과목 없는 것들 + for (int i = 1; i<= n; i++){ + if (degree[i] == 0){ + queue.add(i); + semester[i] = 1; + } + } + + while (!queue.isEmpty()){ + int cur = queue.poll(); // 선수과목에서 처음부터 차근차근 + for (int i : array.get(cur)){ // 얘랑 연결된 과목 + degree[i]--; + if (semester[i] <= semester[cur]){ + semester[i] = semester[cur]+1; + } + if(degree[i] == 0){ + queue.add(i); + } + } + } + // 결과 출력 + StringBuilder sb = new StringBuilder(); + for (int i = 1; i <= n; i++) { + sb.append(semester[i]).append(" "); + } + + System.out.println(sb.toString()); + + } + + +} From 337c07a14a414b4dffe6e17d6bc2af901c531444 Mon Sep 17 00:00:00 2001 From: dlwldn30 Date: Mon, 19 May 2025 23:44:52 +0900 Subject: [PATCH 6/6] =?UTF-8?q?=EC=A4=84=EC=84=B8=EC=9A=B0=EA=B8=B0=201h?= =?UTF-8?q?=2030m?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week6/.idea/week6.iml | 2 + week6/out/production/week6/README.md | 14 ----- .../dlwldn30/Main.class" | Bin 2723 -> 0 bytes .../dlwldn30/Main.java" | 56 ++++++++++++++++++ 4 files changed, 58 insertions(+), 14 deletions(-) delete mode 100644 week6/out/production/week6/README.md delete mode 100644 "week6/out/production/week6/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.class" create mode 100644 "week6/topological_sorting/\354\244\204\354\204\270\354\232\260\352\270\260/dlwldn30/Main.java" diff --git a/week6/.idea/week6.iml b/week6/.idea/week6.iml index 01ea8e96..c32c293b 100644 --- a/week6/.idea/week6.iml +++ b/week6/.idea/week6.iml @@ -4,6 +4,8 @@ + + diff --git a/week6/out/production/week6/README.md b/week6/out/production/week6/README.md deleted file mode 100644 index c8570aff..00000000 --- a/week6/out/production/week6/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Topological Sorting (위상정렬) - -[메인으로 돌아가기](https://github.com/Alom-codingTest/alom-codingTest-25-1) - -위상정렬 문제를 뽑아봤습니다. -계보 복원가 호석은 위상정렬로 말고 다른 풀이로도 풀이 가능합니다. - -| 순번 | 문제 번호 | 문제 이름 | 난이도 | -|:---:|:-------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------:| -| 000 | 14567 | 선수과목 (Prerequisite) | || -| 001 | 1005 | ACM Craft | || -| 002 | 2623 | 음악프로그램 | || -| 003 | 2252 | 줄 세우기 | || -| 004 | 1766 | 문제집 | || \ No newline at end of file diff --git "a/week6/out/production/week6/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.class" "b/week6/out/production/week6/\354\204\240\354\210\230\352\263\274\353\252\251/dlwldn30/Main.class" deleted file mode 100644 index 24f141a5e6cf75b4f2f377eb19f6d9374544a972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2723 zcmZ`*+jA3D82_C#?PfR2tu$@JO;D&Ur40%OZJ}}zFc1jPQd&S{+ib(qbQ6*dP*4%A z0^aa0;EdzQ1Eb@E;!H~|!}#En<3HexGy3A_C^J6G0QGk^X`4dnba&4=-}n8#-}x@* zTBW`9CXad18S;S7~oK`1e8hv@O3LVoFOxH03Gbed!?aw-9pMb}* z1p?725SlfpD3=^(3sl!msZ!UjK|w$&RSL|WP|CY+mgK9)2<99s86rE&PPC+l5>2(u$H){nw&lWIig@G_vc!=+gO*$82wQz>u9J$i60GU zR1ng!9FGZ1pU{&k%%TyG--DdbbaUNaX}dzlN<2Zmgy}Mf6z{&EDR;3-$CG$UKsjn8 zb7riEWl=jxx3HmR136G;JX^3)$0lqR@TODAHV<&bgXw}gs*_2N(9aAC2Lq>Kx^DK4Sb?kA;$;2z@6sU4dib`aC&PuXr zG<2XuzV_>Q4hPt7MmlZUOwqi_;mj9a!K&GZg92iqH0+Xw-2x3$mEnDrI|d-T(bUm{ z1mls)$yASb)eg2rp>UI)|(*!xMclBn!^l=R#N3?z=ApJP8;(i%*1)!KaHc=*}_yUL%tr_UtK) zcszAcqk23_lMg?-^vL#_o0m^@zEDMQw}K~KS=>xyOzzOLj~skiv(MxaNcd7iHZxDh zA{f~!v@Ja%n}TOXk;v^6*EP2g%nRE6IHll>fVS~?x0!aVl$}-ZNl_6+V&f8OwWe~JZgZ0* z%R!ap(kL4Vi;(8UCI38NXi&y?hO-dAg5T1mLlED(;w;}%4EW&it>+bx!%@yu9K&&f z(75C{fpkE8Is&D01ZwA1_=hlS2o=#0RCU%5A~=Nk+m;Pt;Wa$cQuv0w^SuYJYfYv3 zPuU3SI)_l-q?Ckx0pI+~s17QHwP7stV9$V0Tp9h#l?J?DVDl8%VRZ~#3n~G17>|4K z0~!L_HH7mZ!P0=XztMXz=AvC2K@**>Zt{70nT$nbtUnedW&&!q_vQ zk?EgT5f7?^I5db}nNlxgN&bNrr1i@1cfZmA8DON2iA>DfombvVh9O8*P-0!JDW z*jkX@pl_+C(%UL`?SO=36B;SK)c8Nu&(lZ<@aMLpieJLGqs=#@mvYrQ+J z^&WTeK4mdXALYhW1s^C-6jTYJ;6wMnfsJ+xb8f>UZehzE_!Y)u;VqQjK|Pgr-e!ny bq2fPyJg%^Vv$^<)pk8j|V?Gx+_Tb|GhM$*T diff --git "a/week6/topological_sorting/\354\244\204\354\204\270\354\232\260\352\270\260/dlwldn30/Main.java" "b/week6/topological_sorting/\354\244\204\354\204\270\354\232\260\352\270\260/dlwldn30/Main.java" new file mode 100644 index 00000000..d1aa6724 --- /dev/null +++ "b/week6/topological_sorting/\354\244\204\354\204\270\354\232\260\352\270\260/dlwldn30/Main.java" @@ -0,0 +1,56 @@ +package dlwldn30; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.*; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int n = Integer.parseInt(st.nextToken()); // 과목 수 + int m = Integer.parseInt(st.nextToken()); // 선수 조건 수 + + List> array= new ArrayList<>(); + int[]order = new int[n+1]; + + for (int i = 0; i <= n; i++) { + array.add(new ArrayList<>()); + } + + + for (int i = 0; i < n; i++) { + st = new StringTokenizer(br.readLine()); + int a = Integer.parseInt(st.nextToken()); + int b = Integer.parseInt(st.nextToken()); + array.get(a).add(b); // A → B + order[b]++; // B의 진입차수 증가 + } + + // 위상 정렬 + Queue queue = new LinkedList<>(); + for (int i = 1; i <= n; i++) { + if (order[i] == 0) { + queue.offer(i); + } + } + + StringBuilder sb = new StringBuilder(); + + while (!queue.isEmpty()) { + int cur = queue.poll(); + sb.append(cur).append(" "); + + for (int next : array.get(cur)) { + order[next]--; + if (order[next] == 0) { + queue.offer(next); + } + } + } + + System.out.println(sb.toString().trim()); + } +}