목록Algorithm (425)
Mini
순열 서로 다른 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..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net if(입력!=0) add(입력>0) (절대값,+1) add(입력 top에있는거 출력 -add 큐에 배열을 (절대값, 1) (절대값, -1)로 넣음 => 곱하면 원래값이 나오도록 -comparator 절대값이 같으면 -> 오리지날 값끼리 비교 -> 작은거 위로 절대값이 다르면-> 절대값끼리 비교 -> 작은거 위로 import java.io.BufferedReader; impor..

https://www.acmicpc.net/problem/2961 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net * 트리문제 구현방법 1.매개변수로 합을 저장할 변수 make 2.재귀호출2개 1번: 현재값을 계산하고(선택하고) 호출, 요리 카운트++ 2번: 현재값을 (선택안하고) 계산안하고 호출, 요리 카운트그대로 참고 : depth가 깊이, 인덱스 역할도 함. cnt는 입력이 1쌍일때 정답이 무조건 1이되는 현상 방지 [(0,1,0,0)으로 호출하므로 차이가 1임] cnt(input_..