[PS] LeetCode: 3Sum
·
카테고리 없음
오늘은 LeetCode의 3Sum 문제를 풀어보겠습니다. 1. 문제정수 배열 `nums`가 주어질 때, 합이 0이 되는 서로 다른 세 숫자의 조합을 모두 구하는 문제입니다.이때, 1) 같은 조합은 한번만 포함해야 하고, 2) 숫자의 순서는 중요하지 않습니다. 2. 예제Input: nums = [-1,0,1,2,-1,-4]Output: [[-1,-1,2],[-1,0,1]]Input: nums = [0,1,1]Output: [] 3. 접근 방법3.1. 무식하게 풀어보기가장 직관적인 방법은 배열에서 숫자 세 개를 뽑아서 만들 수 있는 모든 조합을 확인하는 것입니다.3중 반복문으로 모든 조합을 확인하고, 합이 0이면 결과에 추가하고, 동일한 조합은 정렬 후 set으로 사후 제거하는 방식입니다. 3.2. BUD ..
[PS] LeetCode: Two Sum II - Input Array Is Sorted
·
PS
오늘은 LeetCode의 Two Sum II - Input Array Is Sorted 문제를 풀어보겠습니다. 1. 문제오름차순으로 정렬된 `numbers`라는 정수 배열이 주어졌습니다. (인덱스 1부터 시작) 더해서 `target` 숫자가 되는 두 숫자를 찾아 인덱스를 반환해주세요. 답을 만족하는 케이스는 한 가지밖에 없고, 같은 원소를 두 번 사용하면 안됩니다. 2. 예제Input: numbers = [2,7,11,15], target = 9Output: [1,2]Input: numbers = [2, 3, 4], target = 6Output: [1,3] 3. 접근 방법3.1. 브루트 포스가장 단순한 방법은 배열에 있는 숫자 두 개로 만들 수 있는 모든 숫자 조합을 찾은 뒤, 이 숫자들이 조건을 만족..
[PS] LeetCode: Remove Duplicates from Sorted Array
·
PS
오늘은 LeetCode의 Remove Duplicates from Sorted Array 문제를 풀어보겠습니다. 문제정렬된 `nums`라는 정수 배열이 주어졌습니다. 추가 메모리를 사용하지 않고(in-place), 배열을 직접 수정해서 중복된 값을 제거해야 합니다. 최종적으로 고유한 원소의 개수 `k`를 반환하세요. 예제Input: nums = [1, 1, 2]Output: 2, nums = [1, 2, _]Input: nums = [0,0,1,1,1,2,2,3,3,4]Output: 5, nums = [0,1,2,3,4,_,_,_,_,_] 접근 방법이 문제의 핵심은 배열이 "정렬되어 있다"는 점입니다. 이 상황에서 같은 값들은 항상 서로 인접해 있기 때문에 이전 원소와만 비교해도 중복을 감지할 수 있습니..