Coding Test/Java 알고리즘 실전

Coding Test/Java 알고리즘 실전

[16926] 배열 돌리기 1

✔ 배열 돌리기 1[백준 16926]코드 구현하기/* * 문제 분석하기 * : 상, 우, 하, 좌 순으로 각 줄마다 배열을 회전하도록 함 *//* * 손으로 풀어보기 * 1. 배열에서 한 번의 회전 동안 몇 줄을 회전시켜야 하는지 찾도록 함 * 2. 각 회전 횟수마다 모든 줄의 가장 첫 번째 배열 값(상단의 가장 좌측 값)을 저장해놓도록 함 * 3. 상, 우, 하, 좌 순으로 각 배열 값을 회전하도록 함 * 4. 마지막에 따로 저장해둔 배열 값을 저장하도록 함 *//* * 16926) 배열_돌리기_1 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); stati..

Coding Test/Java 알고리즘 실전

[4134] 다음 소수

✔ 다음 소수[백준 4134]코드 구현하기/* * 문제 분석하기 * : n보다 크거나 같은 수 중에서 가장 작은 소수를 구하도록 함 *//* * 손으로 풀어보기 * 1. n부터 시작하여 각 수가 1과 자기 자신만을 약수로 가지는지 확인하며 가장 작은 소수를 구하도록 함 * 2. 각 케이스에 대해 한 줄에 하나씩 소수를 출력함/* * 4134) 다음_소수 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int T; // T(테스트 케이스의 개수) static long answer; // answer(가장 작은 소수) /* * 각..

Coding Test/Java 알고리즘 실전

[21922] 학부 연구생 민상

✔ 학부 연구생 민상[백준 21922]코드 구현하기/* * 문제 분석하기 * : 물건의 종류에 따라서 바람의 방향을 바꿔가며 이동할 수 있는 모든 위치의 개수를 구하도록 함 *//* * 손으로 풀어보기 * 1. 에어컨의 위치에서부터 상하좌우로 이동하도록 함 * 2. 물건 1일 때, 바람 방향이 상 또는 하라면 같은 방향으로 이동할 수 있음 (좌 또는 우라면 이동 불가) * 3. 물건 2일 때, 바람 방향이 좌 또는 우라면 같은 방향으로 이동할 수 있음 (상 또는 하라면 이동 불가) * 4. 물건 3일 때, 바람 방향이 상우하좌라면 우상좌하 방향으로 이동할 수 있음 * 5. 물건 4일 때, 바람 방향이 상우하좌라면 좌하우상 방향으로 이동할 수 있음 * 6. 물건의 종류에 따라서 바람의 방향을 바꿔가며 이..

Coding Test/Java 알고리즘 실전

[20207] 달력

✔ 달력[백준 20207]코드 구현하기/* * 문제 분석하기 * : 각 날마다의 일정 개수를 센 후, 일정이 없는 날을 기준으로 하여 * 각 구간의 최대 일정 개수 * 구간의 수를 하여 코팅지 면적을 구하도록 함 *//* * 손으로 풀어보기 * 1. 각 날마다의 일정의 개수 세기 * 2. 일정이 없는 날을 기준으로 각 구간의 최대 일정 개수 * 구간의 수를 하여 코팅지 면적 구하기 * 3. 전체 코팅지 면적 출력하기 *//* * 20207) 달력 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int N; // N(일정의 개수) st..

Coding Test/Java 알고리즘 실전

[2294] 동전 2

✔ 동전 2[백준 2294]코드 구현하기/* * 문제 분석하기 * : 주어진 동전을 조합하여 K원을 만드는데 필요한 최소 개수를 찾도록 함 *//* * 손으로 풀어보기 * 1. K원까지를 만들 때, 하나의 동전을 사용할 수 있는 경우와 여러 동전을 사용해야 하는 경우에 따른 경우의 수를 세도록 함 * 2. 금액 K를 만드는 방법의 최소 개수를 출력 *//* * 2294) 동전 2 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int N, K; static int[] coins; // coins(동전들을 담은 배열) static in..

Coding Test/Java 알고리즘 실전

[1092] 배

✔ 배[백준 1092]코드 구현하기/* * 문제 분석하기 * : 크레인은 1분에 박스를 하나씩 실을 수 있으므로, 가장 큰 무게를 들 수 있는 크레인이 가장 큰 무게를 들도록 함 *//* * 손으로 풀어보기 * 1. 크레인과 박스의 무게를 내림차순으로 정렬 * 2. 가장 큰 무게의 박스를 가장 큰 무게를 들 수 있는 크레인에 할당하도록 하는 것을 반복 * 3. 모든 크레인을 사용했을 때 시간을 1분 증가하고 다시 처음부터 크레인에 박스를 할당하도록 함 * 4. 이를 반복하여 모든 박스를 옮기도록 함 * 5. 만약 가장 큰 무게의 박스가 가장 큰 무게를 들 수 있는 크레인의 무게보다 크다면 모든 박스를 배로 옮길 수 없으므로 -1을 출력 *//* * 1092) 배 */public class Main { ..

Coding Test/Java 알고리즘 실전

[1967] 트리의 지름

✔ 트리의 지름[백준 1967]코드 구현하기/* * 문제 분석하기 * : DFS 탐색을 통해 루트 노드에서부터 가장 먼 노드를 찾은 후, 그 노드로부터 가장 먼 노드를 찾아 지름을 찾도록 함 *//* * 손으로 풀어보기 * 1. DFS 탐색을 통해 루트 노드에서부터 가장 먼 노드 찾기 * 2. 그 노드로부터 가장 먼 노드를 찾아 지름 출력 *//* * 1967) 트리의_지름 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int n; static ArrayList[] tree; // tree(트리 데이터 저장 인접 리스트) sta..

Coding Test/Java 알고리즘 실전

[9489] 사촌

✔ 사촌[백준 9489]코드 구현하기/* * 문제 분석하기 * : k와 조부모는 같으면서 부모는 다른 노드들의 개수를 찾도록 함 *//* * 손으로 풀어보기 * 1. 각 노드에 따른 부모 노드의 인덱스 위치를 저장하도록 함 * 2. k와 조부모는 같으면서 부모는 다른 노드들의 개수를 찾도록 함 * 3. 사촌의 수를 출력 * 4. n과 k가 둘 다 0일 경우 종료 *//* * 9489) 사촌 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int n, k; static int[] node; // node(노드의 정보를 저장하는 배열) ..