목록Algorithm (427)
Mini
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15OZ4qAPICFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 고객들 좌표를 배열에 저장(인덱스 : 0~ N-1) ex) 고객이 3명이다.(0번고객, 1번고객, 2번고객) 2. 0,1,2 가지고 순열만듬 3. 그 순열을 result에 저장 4.result를 가지고 dfs // result[depth] => 고객배열의 인덱스로 사용 5. 현재depth와 현재depth+1과 거리계산 -> 종료조건:depth==N-1 6. depth+1, 거리계산하면서 dfs..

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWAe7XSKfUUDFAUw SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 1,2,4 가 들어오면 순열을 만들어준다. ex)1,2,4 / 1,4,2 ...... 2. 그 순열을 가지고 dfs를 돈다 3.dfs : (1,2,4)에 대해 왼쪽,오른쪽 분기로 dfs2개 돌린다. 3-1 : 이때 depth를 인덱스로 사용하라 3-2 : left 유망X -> return (가지치기) 3-3: depth==3 -> return, 더탐색X, 정답++ import java.io.B..
순열 서로 다른 n개의 원소 중에서 "중복을 허락하지 않고", "순서를 생각"하며 r개를 일렬로 나열하는 수열 출처: https://data-make.tistory.com/493 [Data Makes Our Future:티스토리] static void perm(int depth) { if(depth==N) { //System.out.println(Arrays.toString(result)); //return result; return; } for(int i=0;i

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRDL1aeugDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. BC->생성자 : 그림에 표시된 범위의 좌표를 List에 추가 2. 리스트를 돌면서 A의 좌표와 일치된게 있다 -> BC범위 안이다 -> 기계의x,y좌표(유일성 => 식별용), power 저장, 내림차순 정렬 3. 합 갱신 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; imp..
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 1.최대사용가능 5의 수 구하기 == 기준 2. 사용가능5의 갯수를 1씩 줄여가며 최대~0까지 반복 - 함수 1.사용한5만큼 N에서 빼줌 2. 나머지가지고 3씩빼면서 카운트++ 3. N이 0이면 가능한것임. possible=true, 정답갱신 - 출력 1. possibe? : answer : -1 import java.io.BufferedReader; import java.io.IOException; imp..
https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 1. 정렬되있음->뒤에서부터 탐욕적으로 탐색 2. K보다 작거나 같은 최대값 선택 3.반복적으로 빼고, 카운트++ 4.K==0이면 브레이크, 답 출력 5.현재 선택된값이 K보다 커지면 다시 탐욕적 탐색 , 3번으로가서 반복 import java.io.BufferedReader; import java.io.IOException; imp..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeUtVakTMDFAVH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. nums배열 생성=>1,2,3,4,5,6,....N으로 조합만듬=>배열인덱스로 사용 2. result배열 생성=>크기가nCr의 r, ex)1,2,3에서 2개뽑으면 1,2 / 1,3 /2,3 이 됨. 3. comb(시작인덱스, 카운트=>r이되면 끝내려고) if(cnt==r) {계산, 리턴} for(i= 시작인덱스~N) { result[cnt]=nums[i] => 조합생성 comb(i+1,cnt+..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net //comb(0,0)시작 //nCm임 (n==전체 치킨집수, m=선택된치킨집 수) //1.n크기의 체크배열 생성 //2.for( i= 0~n-1) // check[i]=true // comb(i,cnt+1) // check[i]=false; //3.if(cnt==M) 할일(완성된조합, 체크되면->계산), 리턴 check배열 idx와 치킨리스트 idx는 맞추어져있음 할일 : f..