728x90
728x90
[알고리즘] 다익스트라(Dijkstra) 알고리즘
CS/알고리즘2023. 8. 13. 08:36[알고리즘] 다익스트라(Dijkstra) 알고리즘

다익스트라(Dijkstra) 알고리즘그래프의 최단 경로를 구하는 알고리즘으로 하나의 정점에서 출발하여 최단 거리를 구하는 알고리즘이다. 탐욕법(Greedy)과 동적 계획법을 사용하는 알고리즘으로, 음의 가중치(음의 값)가 없어야한다.음의 가중치가 존재하게 되면, 최소 비용의 음의 무한대값이 생성될 수 있으며 그리디 알고리즘을 적용할 수 없다. 인접 행렬로 표현된 그래프의 경우 O(n^2)의 복잡도를 가지며, 우선순위 큐를 사용하여 시간복잡도를 O(m logn)까지 낮출 수 있다.  매커니즘(1) 방문하지 않은 노드 중 가장 비용이 적은 노드를 선택한다 (그리디)(2) 해당 노드로부터 갈 수 있는 노드들의 비용을 갱신한다 (DP)  예시https://mag1c.tistory.com/451 [백준 1916번..

[백준 13600번 / Java] Fatorial
코딩테스트/백준2023. 7. 7. 21:37[백준 13600번 / Java] Fatorial

문제 링크 Silver 1 https://www.acmicpc.net/problem/13600 13600번: Fatorial O fatorial de um número inteiro positivo N, denotado por N!, é definido como o produto dos inteiros positivos menores do que ou iguais a N. Por exemplo 4! = 4 × 3 × 2 × 1 = 24. Dado um inteiro positivo N, você deve escrever um programa para determina www.acmicpc.net 풀이 solved.ac를 따라 class만 풀다보니 완전탐색만 너무 많이나와서 실2 ~ 실1기준 DP, 그리디..

[백준 1931번 / Java] 회의실 배정 - 탐욕법
코딩테스트/백준2023. 7. 7. 20:04[백준 1931번 / Java] 회의실 배정 - 탐욕법

문제 링크 Silver 1 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 풀이 최대의 경우의 수를 구하는 탐욕법을 요구하는 문제로 가장 많은 경우를 고려하기 위해 회의가 끝나는 시간으로 오름차순해주었고, 같을 경우 시작 시간으로 오름차순 해주었다. Arrays.sort(discussing, new Comparator() { @Override public int compare(int[] o1, int[] o2) { if(o1[1] == o2[1]) return o1[0] - o2[0]; else return o1[1] - o2[1]; } }); 탐욕법을 구현하..

[Java] 광물 캐기 - Lv2 프로그래머스
코딩테스트/프로그래머스2023. 3. 29. 05:58[Java] 광물 캐기 - Lv2 프로그래머스

https://school.programmers.co.kr/learn/courses/30/lessons/172927# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 idx : minerals배열을 총 반복 돌아야하는 횟수로 나머지가 남을경우 올림처리(ex : 18일때 4번돌아야함) count : 광물 종류별 갯수 (처음에는 List을 활용하여 풀려고 했다) picksum : 총 광물을 캘 수 있는 수량(곡괭이 개수*5) 1. stone곡괭이의 경우의 수는 고려하지 않았다. 다이아, 철 곡괭이가 모두 소진된 후에 작업에 사용할 것이기 때문 2. m..

728x90
728x90
image