본문 바로가기

알고리즘

(42)
TOMATO import java.util.Scanner; import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; public class Main{ public static int[] dh = new int[]{1,-1}; public static int[] dy = new int[]{1,0,-1,0}; public static int[] dx = new int[]{0,1,0,-1}; public static int height,sero,garo; public static int[][][] map,score; public static boolean[][][] v; public static ArrayList arrList = ne..
CHEEZE dfs(0,0)에서 시작 0인 지점에서 4방향 탐색 1인 것이 있으면 0으로 표시(방문표시) 0이면서 방문안한곳 이동 맵 보정 -> true이면서 0인 것 false로 개수가 0개가 되면 종료 import java.util.Scanner; import java.util.LinkedList; import java.util.Queue; import java.util.ArrayList; import java.util.Collections; public class Main{ public static int cnt=0; public static int t=0; public static boolean[][] visit; public static int[][] map; public static int sero,gar..
네트워크 약점을 확인할 수 있던 문제 그동안 dfs,bfs는 지도,인접리스트 위주로 풀었던 것으로 기억한다. 강의 영상만 보고 넘어간거 같은데, 강의에서 인접행렬 다시 한 번 확인해야겠다. 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오..
소수 찾기[완전탐색] 알고리즘잡스에서 푼 문제중 level8 순열 뽑기 앞레벨에서 소수판단(에라스토스체) 두가지 문제 풀었던 골격을 활용 (0,1,2) (0,2,1) (1,0,2) (1,2,1) 이런식으로 인덱스를 나열하는게 필요할테고 depth가 1일때, 2일때, 3일때 등등 판단 필요 체감은 2문제 짬뽕시킨 문제 import java.util.ArrayList; import java.util.Arrays; class Solution { public static int n; public static int[] arr; public static boolean[] v; public static char[] input; public static boolean[] isPrime = new boolean[10000021]; publ..
공통조상찾기 포인트: 가장 가까운 공통 부모를 찾는것 문제 트리의 노드 X에 대하여 “조상"을 정의할 수 있다. X의 “조상"이란, 루트까지 올라가는 중에 만나는 모든 노드를 말한다. 예를 들어, 아래와 같이 트리가 주어질 경우, 노드 8의 “조상"은 노드 0, 노드 2, 노드 6이 된다. 두 노드 X, Y의 공통 조상이란, X와 Y가 공통으로 갖는 조상을 말한다. 예를 들어, 노드 7과 노드 10의 공통조상은 노드 2, 노드 0이 된다. 가장 가까운 공통 조상이란, X와 Y가 공통으로 갖는 조상들 중에서 X, Y와 가장 가까운 조상을 말한다. 예를 들어, 노드 7과 노드 10의 가장 가까운 공통 조상은 노드 2가 된다. 트리가 주어지고, 두 노드 X, Y가 주어질 때, 가장 가까운 공통 조상을 찾는 프로그램을 작성..
보호필름 설계 & 구현 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V1SYKAaUDFAWu 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136..
등산로 조성 문제: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq package swexpertmoitest; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; /** * 1] t입력 for(i 1~=t) 2] n(지도크기) / k(자를 수 있는 범위) 입력 3] a[n,n] 입력, 원본도 백업 4] 가장 높은 위치 찾기 5] 가장 높은 점 리스트 기준으로 반복문 수행 6] 지도에 대해서 for(;;) for(;;) 수행 7] 높은 위치 기점으로 한좌표 (1~k)만큼 깍기 8] 시작점에서 상하좌우 ..
이진탐색 import java.util.Scanner; public class Main{ public static int n,q; public static int[] arr; public static int[] qrr; public static void main(String[] args){ Scanner scan = new Scanner(System.in); input(scan); doSearch(); scan.close(); } public static void doSearch() { for(int i=0;i