본문 바로가기

분류 전체보기

(88)
[BOJ]14889번: 스타트와 링크 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 알고리즘 분류 브루트 포스 알고리즘 백트래킹 문제 정리 1. 주어진 N/2의 인원으로 A와 B팀으로 인원을 나눈다. (조합) // MakeTeam 메서드 2. 각 팀에 속한 인원끼리의 시너지를 더하는 과정을 반복하여 최소 값을 찾아낸다. // Calculate 메서드 더보기 import java.util.*; public class Main { static int N,answer = Integer.MAX_VALUE; ..
[BOJ]14502번: 연구소 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 알고리즘 분류 그래프 이론 그래프 탐색 브루트 포스 알고리즘 너비 우선 탐색 내가 정리한 문제의 프로세스는 아래와 같다. 1. 세균의 위치를 찾는다. 2. 빈칸에 벽을 설치한다. 3. 벽을 설치 후 세균을 확산시킨다. 4. 안전지대를 Count 한다. 1. 초기 세팅 때 Virus라는 ArrayList에 넣어준다. 2. WallSet 메서드를 DFS 형식으로 빈칸에 벽을 설치하며 벽의 위치를 Stack에 쌓아..
[BOJ]16234번: 인구 이동 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 알고리즘 분류 구현 그래프 이론 그래프 탐색 너비 우선 탐색 시뮬레이션 문제 설명 내가 파악한 문제의 요지는 다음과 같다 1. 각 칸이 하나의 국가이고 인접한 국가끼리의 인구수 차이가 L과 R 범위 내라면 국경을 열어 인구 이동을 시작한다. 2. 인구 이동 후 각 칸의 인구수는 (연합의 인구수) / (같은 연합의 수)이다. (여기서 같은 연합의 수 라고 표현한 것은 다수의 연합이 발..
[Java] 큐(Queue) 큐(Queue)의 개념 - 스택과는 다르게 먼저 들어온 데이터가 먼저 나가는 FIFO( First In First Out)로 저장하는 자료 구조이다. - 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 유리하다. 큐(Queue)의 기본 메서드 4가지 1. add(item) : item을 리스트의 마지막에 추가한다. 2. remove() : 리스트의 첫 번째 항목을 제거한다. 3. peek() : 큐의 가장 첫 번째 항목을 반환한다. 4. isEmpty() : 큐가 비어있을 경우 true를 반환한다. Java API 에서 큐(Queue)의 FIFO 처리 시 유사한 메서드들의 차이점 예외 발생 값 반환 추가(Enqueue) add(item) offer(item) 삭제(Dequeue) remov..
[Programmers] LV2 - 게임 맵 최단거리 https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 문제 입출력 예 BFS를 활용하여 푸는 문제이다. 마지막 상대 진영까지 가지 못할 경우 -1을 return 해주는 부분만 잘 처리해주면 무난한 문제 더보기 import java.util.*; class Solution { static int n,m; static int[] dx = {-1,1,0,0}; sta..
[Programmers]LV2 - 예상대진표 https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 입출력 예와 설명 문제를 읽으며 30~40분 정도 고민하다 보니 번호가 짝수 일 경우에는 번호 / 2 가 다음 라운드의 자기 숫자가 되고 번호가 홀수 일 경우에는 번호 / 2 +1이 다음 라운드의 자기가 숫자가 된다. 항상 이긴다고 가정했으므로 인원이 반으로 줄어들며 번호가 새로 매겨지다가 결국 같은 번호가 되는 시점이 A와 B가 붙게 ..
[BOJ]17144번 : 미세먼지 안녕! https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 알고리즘 분류 구현 시뮬레이션 내가 정리한 문제의 요점은 다음과 같다. 1. 확산 단계 (Spread 메서드) - 미세먼지가 있는 상, 하, 좌, 우로 확산이 되며 확산되는 양은 map[r][c] /5 만큼이고 확산된 방향만큼 map[r][c]의 양이 줄어든다 (map[r][c]/5) * 확산된 방향의 수 // 다른 곳에서도 같은 칸에 확산되는 경우 누적 계산 (단, 공기청정기가 있는 곳이거나 ..
[BOJ] 1958번: LCS 3 문제 링크 : https://www.acmicpc.net/problem/1958 1958번: LCS 3 첫 줄에는 첫 번째 문자열이, 둘째 줄에는 두 번째 문자열이, 셋째 줄에는 세 번째 문자열이 주어진다. 각 문자열은 알파벳 소문자로 이루어져 있고, 길이는 100보다 작거나 같다. www.acmicpc.net 알고리즘 분류 * 다이나믹 프로그래밍 * 문자열 9251번 문제 LCS https://www.acmicpc.net/problem/9251 9252번 문제 LCS 2 https://www.acmicpc.net/problem/9252 위의 두 문제에 이어서 LCS 3 문제이다. 기존 문제는 문자열 2개를 기준으로 최장 공통 부분 수열을 구했다면 이번 문제는 문자열 3개를 기준으로 문제를 풀어나가야 한..