끄적끄적 코딩
article thumbnail
[Java] SWEA - 공통조상
알고리즘 2023. 1. 13. 19:42

공통 조상과 해당 정점을 루트로 하는 서브트리의 크기를 구하는 문제입니다. 부모->자식으로 데이터가 주어지는데 이를 이용해서 부모->자식 형태로 트리를 만들고 반대로 자식->부모 형태로도 트리를 만들어 주었습니다. 자식->부모 형태로된 트리를 활용해서 첫번째 정점의 부모 노드에 전부 체크를 해줍니다. 두번째 정점에도 똑같이 부모노드를 체크하는 중에 중복이 발생할 경우 가장 가까운 공통조상인 것을 알 수 있습니다. 그리고 부모->자식으로 된 트리를 활용해서 BFS방식으로 서브트리의 크기를 구해주었습니다. import java.util.*; import java.io.FileInputStream; class Solution { public static void main(String args[]) throws..

article thumbnail
[Java] SWEA - 최적 경로
알고리즘 2023. 1. 13. 01:24

집에서 회사까지 가는길에 n개의 배달을 하고 갈때 최단거리를 구하는 문제입니다. 고객의 수가 최대 10개이므로 10개에 대한 모든 조합을 확인해서 최소값이 되는 값을 찾아서 출력해주었습니다. import java.util.Scanner; import java.io.FileInputStream; class Solution { public static int dfs(int bit, int cnt, int index, int n, int[] x, int[] y, int value, int ex, int ey) { int result = 987654321; if(cnt == n){ return value + Math.abs(y[index]-ey)+Math.abs(x[index]-ex); } for(int i=0..

article thumbnail
[Java] SWEA - 보급로
알고리즘 2023. 1. 12. 21:29

시작점으로부터 BFS방식을 통해서 경로를 탐색합니다. 같은 곳을 방문할때는 시간이 덜 걸리는 경우 기록을 덮어씌웁니다. 시작점부터 모든 위치에 대해서 최단시간 경로를 찾아가면서 도착지까지의 최단시간 경로를 찾습니다. import java.awt.Point; import java.util.*; import java.io.FileInputStream; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int T; T=sc.nextInt(); for(int test_case = 1; test_case

article thumbnail
[Java] SWEA - 미로2
알고리즘 2023. 1. 12. 21:17

queue를 사용해서 BFS 방식으로 모든 경로를 탐색했습니다. 2를 시작점으로 탐색하였으며 이미 방문한 위치에 대해서 체크를 하였습니다. import java.awt.Point; import java.util.*; import java.io.FileInputStream; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int T; T=10; for(int test_case = 1; test_case

article thumbnail
[Java] SWEA - 미로1
알고리즘 2023. 1. 12. 21:16

queue를 사용해서 BFS 방식으로 모든 경로를 탐색했습니다. 2를 기준으로 탐색하였으며 이미 방문한 위치에 대해서 체크를 하였습니다. import java.awt.Point; import java.util.*; import java.io.FileInputStream; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int T; T=10; for(int test_case = 1; test_case

article thumbnail
[Java] SWEA - 1대1 가위바위보
알고리즘 2023. 1. 12. 21:13

가위 1 바위 2 보 3 이고 무승부가 나오는 경우가 없을 때 승리한 사람을 출력해주면 됩니다. import java.util.Scanner; import java.io.FileInputStream; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int a, b; a = sc.nextInt(); b = sc.nextInt(); // 1가위 2바위 3보 if((a==1 && b==2) || (a==2 && b==3) || (a==3 && b==1)){ System.out.printf("B"); } else { System.out.printf("A"); }..

article thumbnail
[Java] SWEA - 자릿수 더하기
알고리즘 2023. 1. 12. 21:11

나누기와 모듈러 연산을 통해서 각자리를 전부 더한 후 출력해주었습니다. import java.util.Scanner; import java.io.FileInputStream; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int ans = 0; int n = sc.nextInt(); while(n != 0){ ans += n % 10; n /= 10; } System.out.printf("%d", ans); } }

article thumbnail
[Java] SWEA - 중간값 찾기
알고리즘 2023. 1. 12. 21:09

배열에 넣어서 정렬을 하고 가운데 값을 출력해주었습니다. import java.util.*; import java.io.FileInputStream; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int [] arr = new int[n]; for(int i=0; i

검색 태그