삼성 SW 테스트 기출문제 - 백준 15686 치킨배달을 풀었다.
https://www.acmicpc.net/problem/15686
15686번: 치킨 배달
크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는
www.acmicpc.net
소요 시간 40분
풀이 : 치킨 집과 집을 각각 ArrayList에 때려박음.
조합으로 폐쇄하지 않을 M개를 뽑음.
public static void choice(int arr[], int n, int r, int idx, int target){
if(r==0){
ArrayList<Point> tmp = new ArrayList<Point>();
for(int i=0;i<arr.length;i++){
tmp.add(chik.get(arr[i]));
}
countLen(tmp);
}
else if(target==n){
return ;
} else {
arr[idx] = target;
choice(arr, n, r-1, idx+1, target+1);
choice(arr, n, r, idx, target+1);
}
}
뽑은 뒤, 각 집에 대해서 치킨집 최소거리를 구함.
모든 조합에 대해서 최소거리를 구해서 원하는 답을 찾는다.
JAVA 코드는 다음과 같다.
'알고리즘' 카테고리의 다른 글
백준 15685 드래곤 커브 JAVA (0) | 2020.03.05 |
---|---|
백준 14501 퇴사 - JAVA (0) | 2020.03.04 |
백준 14502 연구소 - JAVA (0) | 2020.03.02 |
[백준 13458 - JAVA] 시험감독 (0) | 2020.03.01 |
[JAVA 백준 16236] - 아기상어 (0) | 2020.02.27 |