본문 바로가기
728x90
반응형

전체 글279

Process VS Thread Process example: Google Chrome uses Process isolation by running each tab in its own process. When one tab misbehaves due to a bug or a malicious attack, other tabs are unaffected. What is a thread? A thread is the unit of execution within a process. A process has at least on thread It is called the main thread. It is not uncommon for a process to have many threads. Each thread has its own stack.. 2024. 4. 1.
2089. Find Target Indices After Sorting Array 0으로 시작하는 정수 배열 nums와 목표 요소 target이 주어집니다. 목표 인덱스는 nums[i] == target인 인덱스 i입니다. nums를 비감소 순서로 정렬한 후 nums의 목표 인덱스 목록을 반환하십시오. 목표 인덱스가 없으면 빈 목록을 반환합니다. 반환된 목록은 증가 순서로 정렬되어야 합니다. 예를 들어: 예제 1: 입력: nums = [1,2,5,2,3], target = 2 출력: [1,2] 설명: 정렬 후, nums는 [1, 2, 2 ,3,5]입니다. nums[i] == 2인 인덱스는 1과 2입니다. 예제 2: 입력: nums = [1,2,5,2,3], target = 3 출력: [3] 설명: 정렬 후, nums는 [1,2,2, 3 ,5]입니다. nums[i] == 3인 인덱스는 .. 2024. 3. 27.
rearrangeLastN 단일 연결 리스트에서 마지막 n개의 노드를 리스트의 시작 부분으로 이동 주어진 단일 연결 리스트에서 마지막 n개의 노드를 리스트의 시작 부분으로 이동시켜야 합니다. 예를 들어: 입력 리스트가 [1, 2, 3, 4, 5]이고 n이 3이면, 결과는 [3, 4, 5, 1, 2]가 되어야 합니다. 입력 리스트가 [1, 2, 3, 4, 5, 6, 7]이고 n이 1이면, 결과는 [7, 1, 2, 3, 4, 5, 6]이 되어야 합니다. // Singly-linked lists are already defined with this interface: // class ListNode { // public T value { get; set; } // public ListNode next { get; set; } // } .. 2024. 3. 20.
reverseNodesInKGroups 주어진 연결 리스트 l의 노드들을 크기 k씩 뒤집고 수정된 리스트를 반환해야 합니다. k는 양수이며, l의 길이보다 작거나 같아야 합니다. 만약 연결 리스트의 노드 수가 k의 배수가 아니라면, 뒤에 남은 노드는 그대로 유지되어야 합니다. 노드의 값은 변경할 수 없으며, 노드 자체만 변경할 수 있습니다. 예시: 예시 1: l = [1, 2, 3, 4, 5]이고 k = 2인 경우, 출력은 [2, 1, 4, 3, 5]가 되어야 합니다. 예시 2: l = [1, 2, 3, 4, 5]이고 k = 1인 경우, 출력은 [1, 2, 3, 4, 5]가 되어야 합니다. 예시 3: l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]이고 k = 3인 경우, 출력은 [3, 2, 1, 6, 5, 4, 9, 8.. 2024. 3. 15.
mergeTwoLinkedLists 두 개의 오름차순으로 정렬된 단일 연결 리스트가 주어졌을 때, 이 두 리스트를 병합하는 것입니다. 병합된 리스트도 오름차순으로 정렬되어야 합니다. 즉, 첫 번째 두 리스트의 노드를 연결하여 새로운 단일 연결 리스트를 만들어야 합니다. 이 문제를 풀기 위해서는 O(l1.length + l2.length) 시간 복잡도를 가져야 합니다. 이것이 면접에서 요구되는 작업입니다. 예를 들어, 다음과 같은 두 개의 연결 리스트가 주어졌다고 가정해 봅시다: 리스트 1: 1 -> 3 -> 5 리스트 2: 2 -> 4 -> 6 이 두 리스트를 병합하면 다음과 같은 결과가 나와야 합니다: 병합된 리스트: 1 -> 2 -> 3 -> 4 -> 5 -> 6 이 문제를 풀기 위해서는 두 리스트를 순회하면서 노드를 비교하고 새로운 .. 2024. 3. 14.
addTwoHugeNumbers 두 개의 큰 정수가 링크드 리스트로 주어졌습니다. 각 링크드 리스트 요소는 0부터 9999까지의 숫자로, 정확히 4자리 숫자를 나타냅니다. 나타낸 숫자에는 선행 0이 있을 수 있습니다. 이 두 큰 정수를 더하고 결과를 동일한 형식으로 반환하는 것이 문제입니다. 예시: a = [9876, 5432, 1999]이고 b = [1, 8001]인 경우, 결과는 [9876, 5434, 0]이 됩니다. 설명: 987654321999 + 18001 = 987654340000. a = [123, 4, 5]이고 b = [100, 100, 100]인 경우, 결과는 [223, 104, 105]가 됩니다. 설명: 12300040005 + 10001000100 = 22301040105. // Singly-linked lists .. 2024. 3. 11.
isListPalindrome 주어진 정수로 구성된 단일 연결 리스트가 회문인지 확인하는 두 가지 일반적인 접근 방식이 있습니다. 스택 사용: 연결 리스트를 순회하고 값을 스택에 넣습니다. 그런 다음 리스트를 다시 순회하고 스택에서 꺼낸 값을 현재 노드와 비교합니다. 모든 노드가 일치하면 연결 리스트는 회문입니다. 그렇지 않으면 회문이 아닙니다. 이 접근 방식은 O(n) 시간 복잡도를 가지며 스택에 추가 공간을 사용합니다. 두 번째 절반 뒤집기: 연결 리스트의 중간 지점을 찾습니다. 두 번째 절반을 뒤집습니다. 첫 번째 절반과 뒤집힌 두 번째 절반을 비교합니다. 일치하면 연결 리스트는 회문입니다. 그렇지 않으면 회문이 아닙니다. 이 접근 방식도 O(n) 시간 복잡도를 가지지만 추가 공간은 **O(1)**만 사용합니다. 문제에서 시간 .. 2024. 3. 9.
removeKFromList 주어진 연결 리스트에서 값이 k인 노드를 모두 제거하는 문제입니다. 이 문제를 해결하기 위해서는 연결 리스트를 순회하면서 값이 k인 노드를 발견하면 해당 노드를 제거해야 합니다. // Singly-linked lists are already defined with this interface: // class ListNode { // public T value { get; set; } // public ListNode next { get; set; } // } // ListNode solution(ListNode l, int k) { if(l == null){ return null; } ListNode current = l; while(current != null && current.value == k){.. 2024. 3. 8.
728x90
반응형