Coding Test

자바를 사용한 코딩 테스트
Coding Test/Java 알고리즘 실전

[21278] 호석이 두 마리 치킨

✔ 호석이 두 마리 치킨[백준 21278]코드 구현하기/* * 문제 분석하기 * : 플로이드 워셜을 이용해 각 건물 지점에서 다른 지점까지 가는 모든 경로의 시간을 구한 후, * 건물을 두 개 짓는 모든 경우의 수에 대하여 가장 적은 시간을 갖는 건물 두 개를 고르도록 함 *//* * 손으로 풀어보기 * 1. 플로이드 워셜을 이용해 각 건물 지점에서 다른 지점까지 가는 모든 경로의 시간을 구하도록 함 * 2. 건물 중 두 개를 골라 치킨집을 정할 경우의 왕복 시간의 총합을 구하도록 함 * 이때 두 치킨집 중 더 작은 거리를 선택해야 함 * 3. 이를 반복하여 최단 시간을 구해 출력하도록 함 *//* * 21278) 호석이_두_마리_치킨 */public class Main { stati..

Coding Test/Java 알고리즘 실전

[2668] 숫자고르기

✔ 숫자고르기[백준 2668]코드 구현하기/* * 문제 분석하기 * : 첫째 줄에서 수를 선택한 후, 그 수의 바로 밑의 둘째 줄에 해당하는 수를 첫째 줄에서 찾아 * 두 수가 일치하는지 확인하는 것을 반복하여 최대 정수의 개수를 구하도록 함 * 예) 1 -> 3 -> 1 / 5 -> 5 *//* * 손으로 풀어보기 * 1. 첫째 줄에서 수를 선택한 후, * DFS 탐색을 통해 숫자 -> numbers[숫자] -> numbers[numbers[숫자]]로 싸이클이 발생하는지 확인하도록 함 * 2. 이를 반복하여 싸이클이 발생하는 수를 찾아 그 개수와 숫자들을 출력하도록 함 *//* * 2668) 숫자고르기 */public class Main { static BufferedRea..

Coding Test/Java 알고리즘 실전

[3980] 선발 명단

✔ 선발 명단[백준 3980]코드 구현하기/* * 문제 분석하기 * : 각 선수별로 포지션을 배치하는 경우의 수를 모두 구하여 능력치의 합이 최대가 되는 것을 찾도록 함 * 이때 각 포지션에 대한 능력이 0이라면 그 포지션에 적합하지 않으므로 배치하지 않도록 함 *//* * 손으로 풀어보기 * 1. 각 선수에 대한 능력을 저장 * 2. 선수들에 따라 만들 수 있는 포지션 배치 경우를 모두 살펴가며 능력치의 합을 구하도록 함 * 이때 이미 포지션이 정해진 선수와 그 포지션에 대해 능력이 0인 선수는 배치할 수 없음 * 3. 이를 반복하여 능력치의 합의 최댓값을 구하여 출력하도록 함 *//* * 3980) 선발_명단 */public class Main { static BufferedRea..

Coding Test/Java 알고리즘 실전

[15686] 치킨 배달

✔ 치킨 배달[백준 15686]코드 구현하기/* * 문제 분석하기 * : 폐업 시키지 않을 치킨 집을 M개 구하는 모든 경우의 수에 따라, 도시의 치킨 거리를 구해 가장 작은 값을 구하도록 함 *//* * 손으로 풀어보기 * 1. 집과 치킨집의 좌표 정보를 저장하기 * 2. 치킨 집을 M개 선택한 후, 그 치킨 집에 따른 도시의 치킨 거리 구하기 * 3. 이를 반복하여 가장 작은 도시의 치킨 거리 값을 구하여 출력하기 *//* * 15686) 치킨_배달 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int N, M; static Lis..

Coding Test/Java 알고리즘 실전

[2212] 센서

✔ 센서[백준 2212]코드 구현하기/* * 문제 분석하기 * : 각 센서들을 K개의 그룹으로 나눌 때 수신 가능 영역의 길이의 합을 최소화하도록 함 * 이를 위해 각 센서들의 좌표를 정렬한 후, N - K개의 거리 차이를 무시하여 제외한 후 나머지의 합을 구해줌 * * 예) N = 6 (1, 6, 9, 3, 6, 7), K = 2일 때 * 각 센서들의 위치는 1, 3, 6, 6, 7, 9이므로 센서들끼리의 거리 차이는 2, 3, 0, 1, 2가 되므로 * 1, 3 / 6, 6, 7, 9로 그룹을 나누면 집중국의 수신 가능 영역의 길이의 합은 2 + 3이므로 5가 됨 *//* * 손으로 풀어보기 * 1. 각 센서들의 좌표를 정렬 * 2. 각 센서들의 거리 차이 구하기 * 3. N -..

Coding Test/Java 알고리즘 실전

[2960] 에라토스테네스의 체

✔ 에라토스테네스의 체[백준 2960]코드 구현하기/* * 문제 분석하기 * : 에라토스네테스의 체를 활용해 N까지의 수에 대한 소수를 구하며, K번째 지우는 수를 구하도록 함 *//* * 손으로 풀어보기 * 1. 구하고자 하는 소수의 범위만큼 1차원 배열을 생성 * 2. 1은 소수가 아니므로 2부터 시작하여 현재 선택된 숫자와 그의 배수에 해당하는 수를 지워나감 * 3. 이를 반복하며 K번째 지워지는 수를 구하도록 함 *//* * 2960) 에라토스네테스의_체 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int N, K; static ..

Coding Test/Java 알고리즘 실전

[5347] LCM

✔ LCM[백준 5347]코드 구현하기/* * 문제 분석하기 * : 두 수의 최대 공약수를 구해 최대 공배수를 구하도록 함 *//* * 손으로 풀어보기 * 1. 두 수의 최대 공약수를 구하도록 함 * 2. 이를 이용해 두 수의 곱을 최대 공약수로 나눠 최대 공배수를 구하도록 함 * 3. 최소 공배수를 출력함 *//* * 5347) LCM */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static long a, b; static long answer = 0; // answer(두 수의 최소공배수) /* * 데이터 준비하기 */ ..

Coding Test/Java 알고리즘 실전

[20924] 트리의 기둥과 가지

✔ 트리의 기둥과 가지[백준 20924]코드 구현하기/* * 문제 분석하기 * : DFS 탐색을 통해 루트 노드부터 기가 노드까지의 길이와 기가 노드부터 리프 노드의 길이들을 구하도록 함 *//* * 손으로 풀어보기 * 1. 루트 노드부터 시작해서 탐색하면서 * 처음 자식 노드가 2개 이상인 노드(기가 노드)를 만나거나 * 리프 노드가 단 1개인 노드를 만나거나 * 루트 노드가 동시에 기가 노드인 경우라면 간선 길이를 구하도록 함 * 2. 이후 기가 노드부터 시작해 리프 노드까지 탐색하며 가장 긴 간선 길이의 합을 구하도록 함 * 3. 구한 트리의 기둥과 가장 긴 가지의 길이를 출력함 *//* * 20924) 트리의_기둥과_가지 */public class Main { stati..

김깅긍
'Coding Test' 카테고리의 글 목록 (5 Page)