Coding Test/알고리즘 실전

Coding Test/알고리즘 실전

[11265] 끝나지 않는 파티

✔ 끝나지 않는 파티[백준 11265]코드 구현하기/* * 문제 분석하기 * : 파티장끼리 연결된 도로를 저장한 후, * 플로이드 워셜 알고리즘을 통해 다른 파티장에 시간 안에 도착할 수 있는지 확인 *//* * 손으로 풀어보기 * 1. 파티장끼리 연결된 도로를 저장 * 2. 플로이드 워셜 알고리즘을 통해 다른 파티장에 시간 안에 도착할 수 있는지 확인 * 3. 시간내에 다른 파티장에 도착할 수 있으면 "Enjoy other party" 출력 * 4. 시간내에 도착할 수 없다면 "Stay here" 출력 *//* * 11265) 끝나지_않는_파티 */public class Main { static BufferedReader br = new BufferedReader(new InputStr..

Coding Test/알고리즘 실전

[20437] 문자열 게임 2

✔ 문자열 게임 2[백준 20437]코드 구현하기/* * 문제 분석하기 * : 문자열에 따른 알파벳의 갯수를 저장한 후, K개 이상을 가진 알파벳일 때 이 문자부터 시작해서 K개를 포함하는 문자열을 찾아 최소, 최대 갱신 *//* * 손으로 풀어보기 * 1. 문자열에 따른 알파벳의 갯수를 저장 * 2. K개 이상을 가진 알파벳일 때 이 문자부터 시작해서 K개를 포함하는 문자열을 찾기 * 3. 최소, 최대 갱신 * 4. 만족하는 연속 문자열이 없을 경우 -1, 만족하는 문자열이 있을 경우 최대, 최소 출력하기 *//* * 20437) 문자열_게임_2 */public class Main { static BufferedReader br = new BufferedReader(new InputStrea..

Coding Test/알고리즘 실전

[1749] 점수따먹기

✔ 점수따먹기[백준 1749]코드 구현하기/* * 문제 분석하기 * : 행렬에 따라 누적합 배열을 만든 후, 모든 부분 행렬에 따라 최대값을 갱신 *//* * 손으로 풀어보기 * 1. 누적합 배열 생성 * 2. 원하는 모든 부분 행렬에 따라 최대값을 갱신 * 3. 정수의 합이 최대가 되는 부분행렬의 합 출력 *//* * 1749) 점수따먹기 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int N, M; static int[][] prefix_sum; // prefix_sum(누적합 배열) static int answer = Int..

Coding Test/알고리즘 실전

[2448] 별 찍기 - 11

✔ 별 찍기 - 11[백준 2448] -> * * * ***** * * * * * * ***** ***** * * ..

Coding Test/알고리즘 실전

[14712] 넴모넴모 (Easy)

✔ 넴모넴모 (Easy)[백준 14712]코드 구현하기/* * 문제 분석하기 * : 넴모가 올라간 칸 중 네 개가 2 x 2 사각형을 이루는지 확인하여 하나도 없다면 경우의 수 증가 * 이후 비어 있는 칸을 임의로 골라 넴모를 하나 올리기를 반복하며 없앨 수 있는 넴모가 없어 게임을 그만둘 수 있는 경우의 수를 구함 *//* * 손으로 풀어보기 * 1. 넴모가 올라간 칸 중 2 x 2 사각형을 이루는지 확인 * 격자판 위에 없앨 수 있는 넴모가 없어 게임을 그만둘 수 있다면 경우의 수 증가 * 2. 비어 있는 칸을 임의로 골라 넴모를 하나 올리기 * 3. 모든 칸만큼 넴모를 사용할 때까지 반복 * 4. 경우의 수를 출력 *//* * 14712) 넴모넴모_(Easy) */public class ..

Coding Test/알고리즘 실전

[21610] 마법사 상어와 비바라기

✔ 마법사 상어와 비바라기[백준 21610]코드 구현하기/* * 문제 분석하기 * : 비바라기 마법을 시전한 칸에서 명령에 따라 이동한 후, 물복사버그 마법을 시전해 바구니의 물의 양을 변화시킴 * 이를 명령에 맞춰 M번 반복한 후, 바구니에 들어있는 물의 양의 합을 구해 출력함 *//* * 손으로 풀어보기 * 1. 비바라기 마법을 시전한 칸에서 명령에 따라 구름을 이동 * 2. 이동한 칸의 물의 양을 1 증가 * 3. 물복사버그 마법을 시전해 이동한 칸의 대각선 방향으로 거리가 1인 칸에 물이 있는 바구니의 수를 세서 물의 양을 증가 * 4. 이전에 구름이 생긴 칸을 제외하고 바구니에 저장된 물의 양이 2 이상인 칸에 구름이 생성되고 물의 양이 2 줄어듦 * 5. 이를 명령에 맞춰 M번 반복한..

Coding Test/알고리즘 실전

[1548] 부분 삼각 수열

✔ 부분 삼각 수열[백준 1548]코드 구현하기/* * 문제 분석하기 * : 세 수 중, 두 수를 더한 값이 나머지 하나의 수보다 클 경우 삼각관계를 만족하므로 * 이를 비교해보며 삼각관계가 될 수 있는 수들의 길이를 구함 *//* * 손으로 풀어보기 * 1. N이 2 이하이면 항상 삼각 수열이므로 N을 출력 * 2. N이 3 이상이라면 수를 정렬 * 3. 작은 수 + 그 다음 작은 수 > 가장 큰 수의 관계를 만족하도록 찾아가며 가장 긴 삼각수열의 길이를 구함 *//* * 1548) 부분_삼각_수열 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); st..

Coding Test/알고리즘 실전

[7569] 토마토

✔ 토마토[백준 7569]코드 구현하기/* * 문제 분석하기 * : 익은 토마토의 상, 하, 좌, 우, 위, 아래를 탐색해 익지 않은 토마토가 있을 경우 익을 수 있도록 해줌 *//* * 손으로 풀어보기 * 1. 익은 토마토의 상, 하, 좌, 우, 위, 아래를 살펴보며 익지 않은 토마토가 있을 경우 익을 수 있도록 해줌 * 2. 토마토가 모두 익을 때까지의 최소 날짜를 출력 *//* * 7569) 토마토 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int M, N, H; static int[][][] tomatoes; // tomato..

김깅긍
'Coding Test/알고리즘 실전' 카테고리의 글 목록 (9 Page)