알고리즘(5)
-
플로이드 워셜 알고리즘(Floyd-Warshall)
플로이드 워셜이란? 최단 경로 담색 알고리즘 중 하나이다. 음수 사이클이 없는 경우에 사용할 수 있다. 모든 정점 간에 최단 경로를 구할 때 사용된다. 시간 복잡도 : Θ(N^3) 사용법 정점의 개수가 3개, 2를 거치는 경우 일단 N x N 예시의 경우는 3 x 3의 배열을 선언해주고 모든 칸을 매우 큰 값으로 초기화해준다. 1. 정점 1에서 시작하여 2를 거쳐 3에 도달하는 경로를 구한다 dist[1][3] = MIN(dist[1][3],dist[1][2]+dist[2][3]) 2. 정점 1에서 시작하여 2를 거쳐 4에 도달하는 경로를 구한다 dist[1][4] = MIN(dist[1][4],dist[1][2]+dist[2][4]) 3. 정점 3에서 시작하여 2를 거쳐 1에 도달하는 경로를 구한다 d..
2024.03.08 -
의상(프로그래머스 Lv_2)
import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.*; class Solution { public int solution(String[][] clothes) { int answer = 1; Map a=new HashMap(); for(int i=0;i
2023.06.26 -
전화번호목록(프로그래머스_Lv2)
https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; Arrays.sort(phone_book); for(int i=0;i
2023.06.09 -
폰켓몬(프로그래머스_Lv1)
https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { public int solution(int[] nums) { int answer = nums.length; //폰켓몬 번호 중복 검사 //중복되는 폰켓몬 번호는 0으로 바꾼뒤 이후 검사할 때 번호가 0이면 검사 패스 for(int i=0;i
2023.05.29 -
개인정보 수집 유효기간(프로그래머스_Lv1)
https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 약관과 개인정보 수집 일자를 hashmap으로 분리한 뒤 적절한 형변환을 이용하여 현재 날짜와 비교시켜주었다. 년도의 차이와 월의 차이를 구하여 약관의 개월과 비교하여 파기해야할 개인정보의 번호를 구하였다. import java.util.*; class Solution { public int[] solution(String today, String[] terms, String[] privacie..
2023.05.28