
문제: 릿코드 743 네트워크 딜레이 타임 1-n 까지의 노드와 함께 times 배열이 주어집니다. times[i] = (ui, vi, wi) 이런 형식으로 주어지며, ui 는 시작노드, vi 는 타겟노드, wi는 거리입니다. 시그널을 k번째 노드에서부터 보내기 시작했을때 모든 노드에 시그널이 도달하는데 걸리는 최소시간을 찾는 문제입니다. 모든 노드에 도달 할 수 없는 경우엔 -1 을 리턴합니다 풀이: 제한사항을 보면 단방향 엣지가 항상 양수이기 때문에 다익스트라 알고리즘을 통해 문제풀이가 가능합니다. 모든 노드에 시그널이 도달하는 시간 = 출발노드에서 가장 멀리 떨어져 있는 노드 사이의 거리를 리턴하면 됩니다. 자바 코드: 2차원 배열리스트를 이용해 그래프를 작성했으며 우선순위 큐를 이용해 아직 방문하..

풀이 정렬 후 투포인터를 이용 유의할점 처음에 정렬 후 투포인터를 각각 0 과 i-1(타겟 인텍스 i)로 잡았는데 틀렸다고 나와 한참 고민했다. 입력조건을 보면 (|Ai| ≤ 1,000,000,000, Ai는 정수)으로 음수 입력 또한 가능하며 음수가 입력된다면 타겟인덱스보다 뒤에 있는 수를 더해야 타켓에 부합할 수도 있다. 자바 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) t..

문제 해석: 두개의 연결리스트가 주어지는데 이는 비어있지 않고, 음수가 아닌 integer이다. 숫자가 역순으로 저장되어있으며 각각의 노드는 각각의 자리 수를 포함하고 있다. 두 수를 더하고 더한 값을 연결 리스트로 리턴해라. Input: l1 = [2,4,3], l2 = [5,6,4] Output: [7,0,8] Explanation: 342 + 465 = 807. 풀이: 친절하게도 한자리 수씩 담고 있고, 더한 리턴값 또한 역순으로 저장하면 되기때문에 자리수 끼리 더하면 되는 문제. 생각해야 할 점: 리턴할때 첫번째 노드를 리턴해야하는것 자릿수들을 더하며 저장하다보면 점점 앞으로 올라가게 되는데 리턴할때 첫번째 노드를 리턴하는것은 생각도 못했다. 각 자리수를 더한 값이 10이 넘어갈때 그 다음 자리수..