[프로그래머스] 가장 큰 수 [JAVA(자바)]
‘프로그래머스 코딩테스트 고득점 Kit’ 문제 입니다. 😀 문제 👉 1. 문제 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 구한다. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 2. 풀이 정렬 을 이용한 문제 풀이 주어진 숫자 배열을 문자 배열로 변환한다. Arrays.sort()를 이용해 내림차순으로 정렬을 한다. 내림차순 : (String a, String b) -> { return (b+a).compareTo(a+b); 오름차순 : (String a, String b) -> { return (a+b).compareTo(b+a); 정렬한 배..
2021. 11. 25.
[LeetCode] 1038. Binary Search Tree to Greater Sum Tree [Python(파이썬)]
'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (이진 탐색 트리(BST)를 터 큰 수 합계 트리로) BST의 각 노드를 현재값보다 더 큰 값을 가진 모든 노드의 합으로 만들어라. Input: root = [4,1,6,0,2,5,7,null,null,null,3,null,null,null,8] Output: [30,36,21,36,35,26,15,null,null,null,33,null,null,null,8] ex : 4 -> 4 + 5 + 6 + 7 + 8 = 30 2. 풀이 재귀탐색을 이용한 풀이 중위 순회로 노드 탐색 right -> now -> left 3. 코드 # Definition for a binary tree node. # class TreeNod..
2021. 11. 24.
[LeetCode] 938. Range Sum of BST [Python(파이썬)]
'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (이진 탐색 트리(BST) 합의 범위) BST가 주어졌을 때 L 이상 R 이하의 값을 지닌 노드의 합을 구하라. Input: root = [4,1,6,0,2,5,7,null,null,null,3,null,null,null,8] Output: [30,36,21,36,35,26,15,null,null,null,33,null,null,null,8] ex : 4 -> 4 + 5 + 6 + 7 + 8 = 30 2. 풀이 재귀탐색과 DFS를 이용한 풀이 반복문과 DFS를 이용한 풀이 3. 코드 재귀탐색과 DFS를 이용한 풀이 # Definition for a binary tree node. # class TreeNode: # ..
2021. 11. 24.
[LeetCode] 310. Minimum Height Trees [Python(파이썬)]
'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (최소 높이 트리) 노드 개수와 무방향 그래프를 입력받아 트리가 최소 높이가 되는 루트의 목록을 리턴하라. Input: n = 4, edges = [[1,0],[1,2],[1,3]] Output: [1] Input: n = 6, edges = [[3,0],[3,1],[3,2],[3,4],[5,4]] Output: [3,4] 2. 풀이 노드가 2개 이하가 될때까지 리프 노드를 순차적으로 제거한다 3. 코드 class Solution: def findMinHeightTrees(self, n: int, edges: List[List[int]]) -> List[int]: if n == 1: return [0] graph =..
2021. 11. 24.