본문 바로가기

소수 찾기[완전탐색] 알고리즘잡스에서 푼 문제중 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
보호필름[모의문제] 보호되어 있는 글입니다.
재귀 유용한 틀(1) import java.util.ArrayList; public class Main { public static ArrayList arrList = new ArrayList(); public static int n = 11; public static int cnt=0; public static void main(String[] args) { f(0,0); System.out.println("cnt:"+cnt); } private static void f(int depth, int y) { if(depth==n) { System.out.println(arrList.toString()); cnt+=1; return; } else if(y==12){return;} arrList.add(y); f(depth+1,..
수영장 오답노트 1] 3달이용권에 대한 생각을 잘못해, 설계도 잘못했다. 1월 7월 8월 이렇게 구매권을 사용할 수 있을 줄 알았는데, 그게 아니었다. 그래서 처음에 설계할땐, 0인거는 제외하고 배열을 백트래킹을 이용해 생성하는 방식을 택했는데, 나중에 잘못되었음을 알았다. 문제를 제대로 이해한 후에는 12달 모두 구매권을 사는 방식을 택했다. 0인 것은 어차피 계산하는 부분에서 제외시키면 되니까... 그런데 여기서 3달짜리 계산을 할 때 많이 고통스러웠다. 구현 기초가 부족함을 뼈저리게 느꼈다. package swexpertmoitest; import java.util.Scanner; public class 수영장 { public static int t,dayPrice,monthPrice,threeMonthP..