전체 글

개발 관련 새롭게 알게 된 지식이나 좋은 정보들을 메모하는 공간입니다.
· Algorithm
- 알고리즘 분류 : greedy- 사용 언어 : JAVA- 문제 요점집의 개수 n과 각 집의 위치를 입력받아 배열에 저장집의 위치 배열을 오름차순으로 정렬안테나는 모든 집까지 거리의 총합이 최소가 되도록 설치해야 거리 합을 최소로 만드는 위치는 중앙값이므로, 정렬된 배열의 중앙 인덱스를 선택중앙값 위치를 출력하여 안테나 설치 위치 얻음import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { ..
· Algorithm
- 알고리즘 분류 : greedy- 사용 언어 : JAVA- 문제 요점동전 종류와 목표 금액(K)을 입력받고, 각 동전 단위를 배열에 저장가장 큰 동전부터 거슬러 줄 수 있는 최대 개수를 계산해당 동전으로 거슬러 줄 수 있는 만큼 K에서 차감하고, 사용한 동전 수를 누적K가 0이 되면 반복을 종료최종적으로 사용한 동전의 개수를 출력import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { ..
· Algorithm
- 알고리즘 분류 : DP- 사용 언어 : JAVA- 문제 요점dp[i][j]는 i번째 아이템까지 훔쳤고, B의 흔적이 j일 때 A의 최소 흔적을 의미함.A가 훔치면 A의 흔적은 늘고 B는 그대로 → dp[i+1][j]에 업데이트.B가 훔치면 B의 흔적은 늘고 A는 그대로 → dp[i+1][nextB]에 업데이트.Math.min()으로 더 작은 값으로 갱신해 최적 경로 유지.마지막에 B의 흔적이 조건 M보다 작을 때의 A 최소값이 정답.public class perfectCrime { static final int MAX_VALUE = Integer.MAX_VALUE / 2; public static void main(String[] args) { int[][] info = {{1..
· Algorithm
- 알고리즘 분류 : 구현- 사용 언어 : JAVA- 문제 요점players 배열은 각 시간대별 접속 인원을 의미하며, 한 서버당 수용 가능 인원은 m, 서버 유지 시간은 k매 시간마다 해당 시점에 만료된 서버들을 serverList에서 제거현재 인원을 수용하기 위한 필요한 서버 수를 계산하고, 부족한 만큼 서버를 증설증설된 서버는 time + k 시간까지 유효하므로, 그 시간을 리스트에 기록최종적으로 증설된 서버의 총 개수를 반환import java.util.*;public class serverAddCount { static int answer = 0; public static void main(String[] args) { int[] players = {0, 2, 3, 3, ..