프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아직 못품 - 23, 25번 시간초과 환장하겠다 대체 뭘 더 고쳐줘야 만족하겠니????????????????????????????????? 풀었다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * path의 가중치값이 최대 10,000,000임. INF 값을 MAX_VALUE로 넉넉하게 잡아줘야함!! - 괜히 1만 정도로 적게 잡고 풀다가 환장하는줄 알았다 * summit 배열 정렬 ㅡㅡ - 출제자놈들 오름차순 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 핵심 플로이드 와샬 알고리즘? 개 어렵다. 혼자 못풀었다. 솔직히 남의 코드 보고 거의 베꼈다 (참고) https://gom20.tistory.com/178 -> 직접적으로 연결된 노드가 아니더라도, K번 노드를 통해 간접적으로 연결될 수도 있다! 아래 왼쪽 짤에서도, 5번 노드는 2번 노드와만 직접적으로 연결되어 있지만, 2번 노드를 거쳐서 1번 노드와 3번 노드로도 이동할 수 있다. 오른쪽 짤에서도 2번 노드는 4번 노드와 직접 연결되어있지 않지만, 3번 노드를 거쳐간다면 4번 노드로 이동할 수 있게 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 핵심 인접 리스트를 사용해서 그래프 구현 이후 BFS 탐색 (가장 멀리 떨어진 노드를 구한다는 것은 즉 최단 거리가 가장 먼 노드를 구한다는 것! 최단거리 탐색 = BFS !!) # 실패 코드 (인접 행렬을 이용한 그래프 구현) import java.util.*; class Solution { boolean[] visited; int[] dist; public int solution(int n, int[][] edges) { int[][] map = new int[n][n]; visited = new bo..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 내가 처음으로 통과한 코드 더보기 import java.util.*; class Solution { private static class Edge { public int to; public int gain; public Edge(int to, int gain) { this.to = to; this.gain = gain; } } Map airportsToIdxMap = new HashMap(); Map idxToAirportsMap = new HashMap(); List adjList = new Linked..
DFS는 스택, BFS는 큐 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 문제를 보면 int[][] computers 이차원 배열을 파라미터로 주는데, 전형적인 인접행렬 형태다! 가장 기본적인 DFS BFS 문제인것 같아 기억이 새록새록 난다 * 인접행렬 사용 시 시간복잡도는 O(V^2) (V: 정점의 개수) # DFS (1) 재귀함수를 통한 DFS - 재귀함수 자체가 내부적으로 스택을 이용하는 것이다. (메소드 호출 시 스택 생성) import java.util.*; class Solution { public int solution(int n, ..
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static class Node { int y, x; public Node(int y, int x) { this.y = y; this.x = x; } } static int N, M, max, max_area = 0; static int[][] map; static boolean[][] visi..
https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net import java.io.*; import java.util.Arrays; import java.util.Objects; import java.util.StringTokenizer; public class Main { public static class Node { int y, x; public Node(int y, int x) { this.y ..
https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int N; static List[] graph; static boolean[] visited; static int[] parents; public static void init_graph() { for(int i = 0; i < N + 1; i++) { graph[i] = new ArrayList(); } } public static void ..