본문 바로가기
728x90
반응형

Leetcode47

101. Symmetric Tree 이진 트리가 대칭 구조인지 여부를 판단하는 문제입니다. 대칭 구조는 트리가 좌우 대칭인지를 의미합니다. 즉, 루트 노드를 중심으로 좌우 하위 트리가 대칭인 경우에 대칭 트리입니다. 문제 설명: 주어진 이진 트리가 대칭 구조인지 판단하세요. 이진 트리의 대칭 구조는 다음과 같이 정의됩니다: 루트 노드가 비어있으면 (null이면) 대칭입니다. 루트 노드가 비어있지 않다면, 좌우 서브트리가 대칭이어야 합니다. 좌우 서브트리의 대칭 여부는 다음과 같이 판단됩니다: 두 서브트리의 루트 노드 값이 동일해야 합니다. 왼쪽 서브트리의 왼쪽 서브트리와 오른쪽 서브트리의 오른쪽 서브트리가 대칭이어야 합니다. 왼쪽 서브트리의 오른쪽 서브트리와 오른쪽 서브트리의 왼쪽 서브트리가 대칭이어야 합니다. 예시: 다음은 대칭 트리와 .. 2023. 11. 1.
414. Third Maximum Number 주어진 배열에서 세 번째로 큰 수를 찾는 문제입니다. 주어진 배열에서 중복된 수는 무시하고, 유일한 값만 고려합니다. 문제 설명: 주어진 배열 nums에서 세 번째로 큰 값을 찾습니다. 중복된 값은 무시하고, 유일한 값만 고려합니다. 예를 들어, 입력 배열 nums가 다음과 같다면: [3, 2, 1] 여기서 세 번째로 큰 값을 찾으면 1이 됩니다. 또 다른 예로, 입력 배열 nums가 다음과 같다면: [1, 2] 여기서 세 번째로 큰 값을 찾으면 2가 됩니다. 첫 번째로 큰 값과 두 번째로 큰 값은 중복된 수를 무시하고 계산합니다. 노트: 배열 nums에는 최소한 세 개의 유일한 값이 포함되어야 합니다. 적어도 세 번째로 큰 값을 찾을 수 있어야 합니다. 이 문제를 해결하는 방법으로는 배열을 한 번 순회.. 2023. 11. 1.
283. Move Zeroes 주어진 배열에서 숫자 0을 배열의 끝으로 이동시키는 문제입니다. 주어진 배열을 수정하며, 0 이외의 숫자들은 순서를 유지해야 합니다. 문제 설명: 주어진 배열 nums가 주어집니다. 이 배열에서 숫자 0을 배열의 끝으로 이동시키세요. 0 이외의 숫자들의 순서는 유지되어야 합니다. 예를 들어, 입력 배열 nums가 다음과 같다면: [0, 1, 0, 3, 12] 이 배열을 수정하여 숫자 0을 배열의 끝으로 이동시키면: [1, 3, 12, 0, 0] 노트: 배열을 수정하며 0을 뒤로 이동시켜야 합니다. 0 이외의 숫자들은 순서를 유지해야 합니다. 추가 배열을 사용하지 말고 주어진 배열을 직접 수정해야 합니다. public void MoveZeroes(int[] nums) { int count = 0; int .. 2023. 10. 31.
303. Range Sum Query - Immutable 주어진 배열에서 특정 범위의 합을 계산하는 문제입니다. 주어진 배열은 변경되지 않으며 여러 번 쿼리를 수행할 수 있어야 합니다. 이 문제를 해결하기 위해 NumArray 클래스를 구현하는 것이 목표입니다. 다음은 문제의 자세한 설명입니다: 문제 설명: 불변 (immutable) 배열 nums가 주어집니다. NumArray 클래스를 구현하여 다음 두 가지 메서드를 제공하세요: NumArray(int[] nums): 배열 nums를 입력으로 받아 초기화합니다. int SumRange(int left, int right): left에서 right까지 (양 끝 포함) 범위 내의 원소의 합을 반환합니다. 예시: 만약 nums = [1, 2, 3, 4, 5]로 초기화된다면, 다음과 같이 NumArray 클래스를 사.. 2023. 10. 31.
94. Binary Tree Inorder Traversal 이진 트리의 노드를 중위 순회(inorder traversal)하여 노드 값들을 리스트에 저장하는 문제입니다. 중위 순회는 트리를 다음과 같은 방식으로 순회합니다: 먼저, 왼쪽 하위 트리를 순회합니다. 현재 노드를 방문하고 처리합니다. 마지막으로, 오른쪽 하위 트리를 순회합니다. 즉, 이 문제에서는 이진 트리를 중위 순회하여 노드 값을 리스트에 저장해야 합니다. 문제 설명: 주어진 이진 트리의 루트 노드 root가 주어집니다. 이 트리를 중위 순회하여 나오는 노드 값들을 리스트에 저장하고, 그 리스트를 반환하세요. 예시: 만약 주어진 이진 트리가 다음과 같다고 가정하면: 1 \ 2 / 3 중위 순회를 수행하면 노드 값 [1, 3, 2] 순서대로 리스트에 저장하고 반환해야 합니다. 노트: 중위 순회를 재귀.. 2023. 10. 30.
83. Remove Duplicates from Sorted List 정렬된 연결 리스트에서 중복된 노드를 제거하는 문제입니다. 문제 설명: 정렬된 연결 리스트가 주어집니다. 이 연결 리스트에서 중복된 노드를 제거하여 중복된 노드가 하나만 남도록 하세요. 예를 들어, 입력으로 주어진 연결 리스트가 다음과 같다고 가정합시다: 1 -> 1 -> 2 이 경우, 중복된 노드인 1이 하나만 남아야 합니다. 따라서 결과 연결 리스트는 다음과 같아야 합니다: 1 -> 2 예시: Input: 1 -> 1 -> 2 Output: 1 -> 2 Input: 1 -> 1 -> 2 -> 3 -> 3 Output: 1 -> 2 -> 3 노트: 연결 리스트는 정렬되어 있으며, 중복된 노드는 인접해 있을 것입니다. 이 문제를 해결하기 위해 주어진 연결 리스트를 순회하면서 중복된 노드를 제거하고, 중복.. 2023. 10. 29.
219. Contains Duplicate II 주어진 정수 배열에서 특정 두 숫자의 인덱스 차이가 최대 k 이하인 중복된 숫자가 있는지 확인하는 문제입니다. 아래는 문제의 자세한 설명입니다: 문제 설명: 정수 배열 nums와 정수 k가 주어집니다. 배열 nums에서 두 숫자 nums[i]와 nums[j]가 있으며, 이때 i와 j의 차이가 최대 k 이하일 때, 즉, |i - j| 2023. 10. 28.
728x90
반응형