Find All Numbers Disappeared in an Array — 음수 마킹으로 `O(n)`/`O(1)` 누락 숫자 찾기
1부터 n까지의 숫자 중 배열에 나타나지 않은 값을 찾는 LeetCode 448번, 완전 탐색부터 존재 배열, 음수 제자리 마킹 풀이까지 정리합니다.
15개의 글
1부터 n까지의 숫자 중 배열에 나타나지 않은 값을 찾는 LeetCode 448번, 완전 탐색부터 존재 배열, 음수 제자리 마킹 풀이까지 정리합니다.
정수 배열에서 세 번째로 큰 서로 다른 값을 찾는 LeetCode 414번, 정렬 풀이부터 세 변수로 상위 3개를 한 번에 추적하는 `O(n)` 풀이까지 정리합니다.
학생 키 배열을 정렬했을 때의 기대 순서와 현재 순서를 비교해 다른 인덱스 개수를 세는 LeetCode 1051번, 정렬 비교 풀이부터 카운팅 정렬 풀이까지 정리합니다.
배열에서 짝수를 앞쪽으로, 홀수를 뒤쪽으로 배치하는 LeetCode 905번, 보조 배열 풀이부터 제자리 투 포인터 partition 풀이까지 정리합니다.
각 원소를 자기 오른쪽에 있는 값 중 최댓값으로 바꾸고 마지막 원소는 `-1`로 만드는 LeetCode 1299번, 완전 탐색부터 오른쪽에서 왼쪽으로 갱신하는 `O(n)`/`O(1)` 풀이까지 정리합니다.
배열이 엄격하게 증가한 뒤 엄격하게 감소하는 산 모양인지 확인하는 LeetCode 941번, 꼭대기 기준 검증부터 한 번 순회 풀이까지 정리합니다.
배열 안에 어떤 값 `n`과 `2 * n`이 서로 다른 위치에 존재하는지 확인하는 LeetCode 1346번, 완전 탐색부터 `HashSet`을 이용한 한 번 순회 풀이까지 정리합니다.
정렬된 배열에서 중복을 제자리 제거하고 고유 원소 개수 `k`를 반환하는 LeetCode 26번, 보조 배열 풀이부터 쓰기 포인터로 앞쪽 고유 값 구간을 만드는 `O(n)`/`O(1)` 풀이까지 정리합니다.
배열에서 특정 값을 제자리 제거하고 남은 길이를 반환하는 LeetCode 27번, 별도 배열 방식부터 앞쪽 유효 구간을 유지하는 `O(n)`/`O(1)` 풀이, 뒤쪽 스왑 변형까지 정리합니다.
정렬된 두 배열을 `nums1` 안에서 병합하는 LeetCode 88번, 별도 배열 풀이부터 뒤에서부터 채우는 제자리 `O(m + n)` 풀이까지 정리합니다.
고정 길이 배열에서 `0`을 복제하며 나머지를 오른쪽으로 미는 LeetCode 1089번, 별도 배열 `O(n)` 풀이부터 오른쪽에서부터 덮어쓰는 제자리 `O(n)`/`O(1)` 풀이까지 정리합니다.
정렬된 배열의 각 원소를 제곱한 뒤 다시 정렬된 배열로 만드는 LeetCode 977번, 제곱 후 정렬 `O(n log n)` 풀이부터 양끝 절댓값을 비교하는 투 포인터 `O(n)` 풀이까지 정리합니다.
배열에서 자릿수가 짝수인 수가 몇 개인지 구하는 LeetCode 1295번, 문자열 길이 풀이부터 나눗셈으로 자릿수 세기, 범위 비교 `O(n)` 풀이까지 정리합니다.
이진 배열에서 가장 긴 연속된 1의 길이를 구하는 LeetCode 485번, 구간을 매번 다시 세는 `O(n²)` 풀이부터 현재 길이와 최댓값만 유지하는 `O(n)` 풀이까지 정리합니다.
고객별 계좌 잔액 행렬에서 가장 큰 자산 합을 구하는 LeetCode 1672번, 행별 합 배열을 만드는 풀이부터 최댓값만 유지하는 `O(mn)`/`O(1)` 풀이까지 정리합니다.