알고리즘/LeetCode 2

[LeetCode] 179. 가장 큰 수

https://leetcode.com/problems/largest-number/ 문제 이해 정수형의 요소를 가진 리스트가 입력으로 주어질 때, 이들을 붙여서 가장 큰 숫자가 되도록 이어 붙인 후 출력하라. 생각한 알고리즘 1. 리스트의 각 요소의 첫 번째 자리 기준으로 내림차순 정렬해야한다. 2. 첫 번째 자리끼리의 비교를 위해서 각 요소를 str으로 변환해야한다. 3. str[0]을 기준으로 내림차순 정렬한다. 4. str[i] 값이 동일한 경우 값이 동일한 요소들끼리 재정렬한다. 5. str[i+1] 값에 따라 내림차순 정렬한다. str[i+1] 값이 None인 경우 str[0] 값과 동일한 값으로 가정한다. 이렇게 각 자리마다 내림차순을 하고, 현재 자리의 값이 동일한 경우, 다음 자리 값을 내림..

[LeetCode 543] 이진 트리의 직경

소요 시간 : 90m 문제 이해 이진 트리의 루트가 주어지면 트리 지름의 길이를 반환합니다. 이진 트리의 직경은 트리의 두 노드 사이에서 가장 긴 경로의 길이입니다. 이 경로는 루트를 통과할 수도 있고 통과하지 않을 수도 있습니다. 두 노드 사이의 경로 길이는 두 노드 사이의 간선 수로 표시됩니다. 이진 트리의 루트가 주어지면 트리 지름의 직경 : 트리의 두 노드 사이에서 가장 긴 경로의 길이 두 노드 사이의 경로 길이는 두 노드 사이의 간선 수로 표시된다. 일단 주어진 노드 구조를 보자. class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right 일반 노..