본문 바로가기

Algorithm54

[프로그래머스(programmers)] (Lv3) 여행경로 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 여행경로 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 문제 풀이 이 코드는 유일하게 아직 미완성인 상태다. 실행시켜보면 문제 5,6개 정도 런타임에러가 난다. 모든 경우 다 맞다고 생각했는데 오류가나서 생각해보니, 시작지점이 같을 때, 도착 지점이 알파벳 순서가 빠르다고 무조건 그게 1순위가 아니였.. 2021. 5. 21.
[프로그래머스(programmers)] (Lv2) 전화번호 목록 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 전화번호 목록 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 문제 링크 class Solution { public boolean solution(String[] phone_book) { boolean answer = true; top : for(int i = 0; i < phone_book.length; i++) { for(int.. 2021. 5. 20.
[프로그래머스(programmers)] (Lv1) K번째 수 알고리즘 문제 풀이 / 프로그래머스 (programmers) - K번째 수 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 문제 풀이 public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; for(int i = 0; i < commands.length; i++){ int[] arr = Arrays.copyOfRange(array, commands[i].. 2021. 5. 19.
[프로그래머스(programmers)] (Lv1) 완주하지 못한 선수 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 완주하지 못한 선수 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 문제 풀이 public String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(participant); Arrays.sort(complet.. 2021. 5. 19.
[프로그래머스(programmers)] (Lv2) 다리를 지나는 트럭 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 다리를 지나는 트럭 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 문제 풀이 public static int solution(int bridge_length, int weight, int[] truck_weights) { int answer = 1; Queue wait = new LinkedList(); Queue c.. 2021. 5. 18.
[프로그래머스(programmers)] (Lv2) 프린터 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 프린터 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 이번 문제를 풀고나서 다른 사람들의 풀이를 살펴보는데 내가 짠 코드보다 한 단계 더 간편하게 풀 수 있어 그 풀이를 조금 응용해보았다. 문제 풀이 처음 시도 동일한 중요도 일 때, location의 위치를 구별해야하므로 check 이라는 변수를 두고 갱신되는 location의 위치를 .. 2021. 5. 17.
[프로그래머스(programmers)] Summer/Winter Coding(~2018) 배달 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 배달 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 문제 풀이 public class delivery { public static int solution(int N, int[][] road, int K) { int answer = 0; int[][] order = new int[N][N]; for(int i .. 2021. 5. 16.
JAVA 로 다익스트라 구현하기 | 목적 ◦ 다익스트라 알고리즘 Java로 구현하기 | 시작하는 말 다익스트라의 개념, 순서가 이해가 안된다면 다익스트라란 무엇인가 이 포스트를 먼저 보고 오면 좋다. | 초기 설정 다익스트라를 만들기에 앞서 변수 두가지를 설정해줘야 한다. distance변수는 각 노드에 갈 수 있는 최단거리를 저장한다. visit변수는 해당 노드를 방문 했는지를 체크할 변수다. int distance[] = new int[N]; //최단거리들을 저장할 배열을 만든다. boolean visit[] = new boolean[N]; //해당노드 방문여부를 체크할 배열을 만든다. | 예제 (JAVA) public class Dijkstra { private static int n; private static int maps[.. 2021. 5. 13.
다익스트라(Dijkstra)란 무엇인가? ▏목적 ◦ 다익스트라 알고리즘 이해하기 ▏시작하는 말 프로그래머스에서 "배달"이라는 문제를 풀어보았는데, 이런 유형의 문제는 처음 접해봐서 그런지 어떻게 풀어야 할지 감조차 오지 않았다. 그래서 구글에서 여러 알고리즘들을 살펴보다 최단거리를 구하는 다익스트라를 알게 되었다. 이 방법이라면 이 문제를 해결 할 수 있을 것 같아 다익스트라를 충분히 이해하고, 다시 풀어보았는데 손쉽게 풀었다. 완벽히 다익스트라를 알게된 지금, 내가 직접 문제를 만들어 설명해보려 한다. ▏다익스트라(Dijkstra) 란 무엇인가? 다익스트라는 최단거리를 탐색하는 방법이다. 쉽게 말해 특정한 한 점에서 다른 모든 점까지 가는 경로의 최소를 구하는 것이다. 이것의 가장 큰 특징은 한 점 까지의 최단거리를 구할 때 그 전까지 구한 .. 2021. 5. 11.