Coding Test/알고리즘 실전

Coding Test/알고리즘 실전

[21611] 마법사 상어와 블리자드

✔ 마법사 상어와 블리자드[백준 21611]코드 구현하기/* * 문제 분석하기 * : 마법에 따라 구슬을 제거하고, 구슬의 위치를 이동시키며 폭발한 구슬의 개수들을 찾도록 함 *//* * 손으로 풀어보기 * 1. 블리자드 마법 시전 : 4가지 방향과 거리에 따라 그 칸에 있는 구슬을 모두 파괴 * 2. 블리자드 마법 시전 : 파괴된 칸이 없도록 달팽이 모양으로 회전하며 구슬 이동 * 3. 구슬 폭발 : 달팽이 모양으로 4개 이상 연속하는 구슬이 있을 경우 모두 파괴 * 4. 구슬 폭발 : 팔괴된 칸이 없도록 달팽이 모양으로 회전하며 구슬 이동 * 5. 구슬 폭발 : 구슬을 이동하며 더 이상 폭발하는 구슬이 없을 때까지 반복 * 6. 구슬 변화 : 달팽이 모양으로 돌아가며 그룹을 찾아, 그룹에 들어 있는..

Coding Test/알고리즘 실전

[22862] 가장 긴 짝수 연속한 부분 수열 (large)

✔ 가장 긴 짝수 연속한 부분 수열 (large)[백준 22862]코드 구현하기/* * 문제 분석하기 * : 투 포인터를 사용해 범위를 정한 후, 최대 K번 삭제하여 가장 긴 짝수 부분 수열을 찾도록 함 *//* * 손으로 풀어보기 * 1. 투 포인터를 사용해 범위 정하기 * 2. 짝수가 아닐 경우 K번만큼 삭제 * 3. 가장 긴 짝수 부분 수열의 길이를 출력 *//* * 22862) 가장_긴_짝수_연속한_부분_수열_(large) */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int N, K; static int[] numbers; // ..

Coding Test/알고리즘 실전

[12865] 평범한 배낭

✔ 평범한 배낭[백준 12865]코드 구현하기 무게 0무게 1무게 2무게 3무게 4무게 5무게 6무게 7아이템 000000000아이템 10000001313아이템 20000881313아이템 30006881314(8 + 6)아이템 400068121314/* * 문제 분석하기 * : 배낭에 넣을 수 있는 각 무게에 따른 물건의 최대 가치를 구하도록 함 *//* * 손으로 풀어보기 * 1. 아이템과 무게에 따른 가치 테이블을 생성 * 2. 가치의 최대값을 출력 *//* * 12865) 평범한_배낭 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static in..

Coding Test/알고리즘 실전

[1106] 호텔

✔ 호텔[백준 1106]코드 구현하기/* * 문제 분석하기 * : 고객의 수에 따른 투자해야 하는 돈의 최소값들을 구해 이를 이용해 계속해서 다음 고객의 수에 따른 비용을 구함 * 이때 적어도 C명이므로 최소 비용을 가지고 C명보다 많은 고객을 확보할 때도 가능하게 됨 *//* * 손으로 풀어보기 * 1. 고객의 수에 따른 비용 테이블을 생성 * 2. 고객(적어도 C명에서 C + 100명)을 확보하는데 사용되는 최소 비용으로 갱신 *//* * 1106) 호텔 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int C, N; static..

Coding Test/알고리즘 실전

[13164] 행복 유치원

✔ 행복 유치원[백준 13164]코드 구현하기/* * 문제 분석하기 * : 원생끼리의 키 차이를 구한 후, N명의 학생들을 K개의 그룹으로 나눈다고 하였으므로 * N - K개의 가장 큰 키 차이 값을 무시하여 제외하고 작은 키 차이 값들을 그룹의 개수에 합쳐 주도록 함 * 예) 1, 3, 5, 6, 10 (2, 2, 1, 4의 키 차이) → 2, 4의 키 차이 값 제외 → 1,3 / 5,6 / 10 *//* * 손으로 풀어보기 * 1. 원생끼리의 키 차이를 구하기 * 2. N - K개의 가장 큰 키 차이 값을 무시 * 3. 나머지 키 차이 값들을 합쳐서 출력하기 *//* * 13164) 행복_유치원 */public class Main { static BufferedReader br = n..

Coding Test/알고리즘 실전

[5639] 이진 검색 트리

✔ 이진 검색 트리[백준 5639]코드 구현하기/* * 문제 분석하기 * : 전위 순회의 경우, 처음 탐색한 값이 루트이므로 이를 이용해 작으면 왼쪽 자식, 크면 오른쪽 자식으로 순회하며 재귀 탐색 *//* * 손으로 풀어보기 * 1. 루트 노드를 설정 * 2. 루트보다 작으면 왼쪽 자식, 루트보다 클 경우 오른쪽 자식으로 하며 탐색 *//* * 5639) 이진_검색_트리 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static Node root; // root(루트 노드) /* * Node(트리의 노드 정보를 담은 클래스) */ ..

Coding Test/알고리즘 실전

[21939] 문제 추천 시스템 Version 1

✔ 문제 추천 시스템 Version 1[백준 21939]코드 구현하기/* * 문제 분석하기 * : 추천 문제 리스트를 어려운 레벨, 쉬운 레벨을 기준으로 두 개의 우선순위 큐에 저장하고 명령어에 따라 추천하도록 함 *//* * 손으로 풀어보기 * 1. 명령어가 recommend일 경우, 1이면 최대값 우선순위 큐에서 -1이면 최소값 우선순위 큐에서 문제를 선택해 추천 * 2. 명령어가 add일 경우, 추천 문제를 최소값, 최대값 우선순위 큐에 저장 * 3. 명령어가 solved일 경우, 두 우선순위 큐에서 문제를 제거 *//* * 21939) 문제_추천_시스템_Version_1 */public class Main { static BufferedReader br = new BufferedRead..

Coding Test/알고리즘 실전

[2493] 탑

✔ 탑[백준 2493]코드 구현하기/* * 문제 분석하기 * : 자신보다 큰 높이의 탑을 발견할 경우 이 탑이 수신받도록 함 *//* * 손으로 풀어보기 * 1. 스택이 비어있다면 수신할 탑이 없으므로 0 * 2. 스택의 맨 윗부분 탑의 높이가 지금 들어오는 탑의 높이보다 크다면 이 탑으로 수신 가능 * 3. 스택의 맨 윗부분 탑의 높이가 지금 들어오는 탑의 높이보다 작거나 같다면 이 탑으로 수신할 수 없게 되므로 스택에서 제거 * 4. 이를 반복하며 스택의 맨 윗부분 탑을 수신하는 탑으로 갱신 *//* * 2493) 탑 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.i..

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