본문 바로가기

Algorithm101

알고리즘(배달, 스티커 모으기2) [배달] * 알고리즘 다익스트라 * 로직 인접리스트를 생성한다(양방향) 1번 마을부터 시작하기 때문에 시작노드를 1로 설정한다 다익스트라를 진행한다 진행한 후 distance[] 값이 K 이하라면 답을 카운팅한다 //배달 import java.util.ArrayList; import java.util.Arrays; import java.util.PriorityQueue; class NodeInfo_Delivery implements Comparable{ public int nodeIdx; public int distance; public NodeInfo_Delivery(int nodeIdx, int distance) { this.nodeIdx = nodeIdx; this.distance = distanc.. 2020. 3. 9.
백트래킹(N과 M - 1~4) [N과 M(1) - 15649] 순열 뽑았던 카드는 다시 뽑을 수 없음 [N과 M(2) - 15649] 조합 뽑았던 카드는 다시 뽑을 수 없음 [N과 M(3) - 15649] 순열 뽑았던 카드는 다시 뽑을 수 있음 [N과 M(4) - 15649] 조합 뽑았던 카드는 다시 뽑을 수 있음 //N과 M (1) import java.util.Scanner; public class Problem_15649 { static int N, M; static boolean[] checked; static StringBuilder sb; static int[] arr; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); N =.. 2020. 3. 3.
모의 SW 역량테스트 (활주로 건설) * 알고리즘 시뮬레이션 * 로직 현재칸과 다음칸의 높이가 같다면 cnt++ 높이 차이가 1이고, cnt가 경사로 설치 가능 길이(X) 이상이라면 설치를 했다고 가정하고 cnt = 1로 초기화 높이 차이가 -1이라면 cnt = -X + 1을 통해 음수로 만들어 준 뒤 그 다음 재귀로 넘긴다 (다음 재귀부터 높이가 같다면 cnt++을 하다보면 0이 된 순간 경사로 설치 가능 여부를 구할 수 있음) (단, cnt >= 0 이어야 가능) 모든 조건에 부합하지 않는다면 possible = false 이를 반복한다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Str.. 2020. 2. 27.