Algorithm/Array
-
배열에 존재하는 0을 모두 배열의 끝으로 옮겨라 단, 새로운 배열을 정의하지 않고 주어진 배열에서만 문제를 해결하라0 이외에 숫자들의 순서는 변경되지 않아야 한다.class Solution { public void moveZeroes(int[] nums) { }} 배열 문제를 바라보는 기본적인 시각을 길러주는 문제이다.포인터 두 개를 이용해서 문제의 요구사항을 처리하는 것! 하나는 숫자를 찾는 포인터나머지는 0의 위치를 가리키는 포인터 숫자를 찾는 포인터가 for문을 돌며 숫자를 찾고 숫자를 찾았다면 0의 위치를 가리키는 포인터와 swap swap이 된 경우에는 0의 위치를 가리키는 포인터는 숫자로 채워졌으니 ++1 하여 다음 위치를 가리킨다. 더보기{ int i = ..
[LeetCode] 283 Move zeros배열에 존재하는 0을 모두 배열의 끝으로 옮겨라 단, 새로운 배열을 정의하지 않고 주어진 배열에서만 문제를 해결하라0 이외에 숫자들의 순서는 변경되지 않아야 한다.class Solution { public void moveZeroes(int[] nums) { }} 배열 문제를 바라보는 기본적인 시각을 길러주는 문제이다.포인터 두 개를 이용해서 문제의 요구사항을 처리하는 것! 하나는 숫자를 찾는 포인터나머지는 0의 위치를 가리키는 포인터 숫자를 찾는 포인터가 for문을 돌며 숫자를 찾고 숫자를 찾았다면 0의 위치를 가리키는 포인터와 swap swap이 된 경우에는 0의 위치를 가리키는 포인터는 숫자로 채워졌으니 ++1 하여 다음 위치를 가리킨다. 더보기{ int i = ..
2025.06.26 -
정렬된 배열이 주어지고, 거기서 target을 가지고 있는 인덱스를 리턴하라. 없다면 -1을 리턴시간 복잡도는 O(log n)이여야 한다. class Solution { public int search(int[] nums, int target) { }} 정렬된 배열에서 원하는 target을 찾는 방법으로 binary search가 있는데 이를 구현하는 문제이다. 더보기{ int left = 0, right = nums.length - 1; while (left target) { right = mid - 1; } else if (nums[mid] 문제를 풀다 햇갈렸던 부분으로는 while을 진행하는 조건에 left, right 값 비교..
[LeetCode] 704 Binary Search정렬된 배열이 주어지고, 거기서 target을 가지고 있는 인덱스를 리턴하라. 없다면 -1을 리턴시간 복잡도는 O(log n)이여야 한다. class Solution { public int search(int[] nums, int target) { }} 정렬된 배열에서 원하는 target을 찾는 방법으로 binary search가 있는데 이를 구현하는 문제이다. 더보기{ int left = 0, right = nums.length - 1; while (left target) { right = mid - 1; } else if (nums[mid] 문제를 풀다 햇갈렸던 부분으로는 while을 진행하는 조건에 left, right 값 비교..
2025.06.23 -
코딩 테스트를 준비하는 과정에서 학습한 내역들을 기록해 보자.가장 간단한 배열부터 시작해 보자. 배열이란데이터들이 연속적으로 이어져서 랜덤 액세스를 지원하는 자료구조.(랜덤 액세스를 지원하지 않는 자료구조는?! linked list)(랜덤 액세스란? 각 element들의 인덱스를 통해서 바로 접근하는 것. nums[0], nums[3]..) 배열만으로 알고리즘 문제가 만들어지기보다는BinaryTree, BackTracking과 같은 알고리즘에서 사용되는 자료구조라고 보면 된다.추후에 차근차근 알아보자.. 배열 자료구조의 기본이 되는 문제는 정렬(sorting)이다.-> quick sort, merge sort.. 다양하게 존재-> 시간 복잡도 O(nlogn)-> stable, unstable(정렬 전의..
[코딩테스트] Array코딩 테스트를 준비하는 과정에서 학습한 내역들을 기록해 보자.가장 간단한 배열부터 시작해 보자. 배열이란데이터들이 연속적으로 이어져서 랜덤 액세스를 지원하는 자료구조.(랜덤 액세스를 지원하지 않는 자료구조는?! linked list)(랜덤 액세스란? 각 element들의 인덱스를 통해서 바로 접근하는 것. nums[0], nums[3]..) 배열만으로 알고리즘 문제가 만들어지기보다는BinaryTree, BackTracking과 같은 알고리즘에서 사용되는 자료구조라고 보면 된다.추후에 차근차근 알아보자.. 배열 자료구조의 기본이 되는 문제는 정렬(sorting)이다.-> quick sort, merge sort.. 다양하게 존재-> 시간 복잡도 O(nlogn)-> stable, unstable(정렬 전의..
2025.06.21