[LeetCode] 886. Possible Bipartition [JAVA(자바)]
'기술면접 라이브코딩 - 승지니어'를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 () N명의 사람을 두 그룹으로 나눈다. Dislikes[i] = [a,b] 일 때, a 와 b 는 서로 다른 그룹이어야 한다. Input: N = 4, dislikes = [[1,2],[1,3],[2,4]] Output: true Explanation: group1 [1,4], group2 [2,3] Input: N = 3, dislikes = [[1,2],[1,3],[2,3]] Output: false 2. 풀이 이분그래프 와 DFS 를 이용한 풀이 이분그래프를 통해 N명의 사람을 2개의 그룹으로 나눈다. DFS 를 통해 dislikes한 사람을 모두 다른 그룹(true/false)으로 보낸다. visi..
2021. 11. 24.
[LeetCode] 218. The Skyline Problem [JAVA(자바)]
'기술면접 라이브코딩 - 승지니어'를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 빌딩의 좌표가 주어졌을 때, 모든 빌딩이 형성하는 실루엣의 바깥 쪽 윤곽점을 나타내어라. Input: buildings = [[2,9,10],[3,7,15],[5,12,12],[15,20,10],[19,24,8]] Output: [[2,10],[3,15],[7,12],[12,0],[15,10],[20,8],[24,0]] 2. 풀이 Sort 와 TreeMap 을 이용한 풀이 빌딩을 2개의 Line으로 나눈다. 빌딩의 왼쪽과 오른쪽을 구분하기 위해 왼쪽은 높이에 마이너스를 붙인다. (-height) (left, -height), (right, height) List lines = new ArrayList(bui..
2021. 11. 24.
[LeetCode] 876. Middle of the Linked List [JAVA(자바)]
문제 👉 1. 문제 (링크드리스트의 중간) 링크드리스트의 중간을 반환하라. Input: [1,2,3,4,5] Output: Node 3 from this list (Serialization: [3,4,5]) The returned node has value 3. (The judge's serialization of this node is [3,4,5]). Note that we returned a ListNode object ans, such that: ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL. Input: [1,2,3,4,5,6] Output: Node 4 from this list (S..
2021. 11. 24.
[LeetCode] 589. N-ary Tree Preorder Traversal [JAVA(자바)]
문제 👉 1. 문제 n 항 트리의 루트가 주어지면 노드 값의 사전 순회(Preorder)를 반환합니다. Input: root = [1,null,3,2,4,null,5,6] Output: [1,3,5,6,2,4] Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14] Output: [1,2,3,6,7,11,14,4,8,12,5,9,13,10] 2. 풀이 preorder 를 이용한 풀이 self -> children 3. 코드 /* // Definition for a Node. class Node { public int val; public List children; public..
2021. 11. 24.
[LeetCode] 530. Minimum Absolute Difference in BST [JAVA(자바)]
문제 👉 1. 문제 (BST의 최소 절대 차이) 이진 검색 트리 (BST)의 루트가 주어지면 트리에 있는 두 개의 서로 다른 노드 값 간의 최소 절대 차이를 반환합니다. Input: root = [4,2,6,1,3] Output: 1 Input: root = [1,0,48,null,null,12,49] Output: 1 2. 풀이 이진검색트리 - inorder 를 이용한 풀이 이진 검색 트리의 inorder -> 오름차순 정렬이 됨! 트리 순회 preorder : self -> left -> right inorder : left -> self -> right postorder : left -> right -> self 3. 코드 class Solution { int minValue, preValue; b..
2021. 11. 24.
[LeetCode] 107. Binary Tree Level Order Traversal II [JAVA(자바)]
문제 👉 1. 문제 (Binary Tree Level Order) 이진 트리의 루트가 주어지면 노드 값의 상향식(bottom-up) 순서 순회를 반환합니다. (i.e., from left to right, level by level from leaf to root) Input: root = [3,9,20,null,null,15,7] Output: [[15,7],[9,20],[3]]2. 풀이 BFS 를 이용한 풀이 Queue 에서 노드를 순서대로 꺼내 list 에 추가한다. Queue 에 left, right 순서로 자식 노드를 추가한다. Bottom-up 순서로 출력하기 위해 각 층을 나타나내는 list를 ret의 0번 인덱스에 추가한다. 3. 코드 /** * Definition for a binary ..
2021. 11. 24.