본문 바로가기
728x90
반응형

전체 글284

33. Search in Rotated Sorted Array 정렬된 정수 배열이 주어지고, 이 배열이 한 번 회전된 상태에서 특정 정수 값을 찾는 것입니다. 주어진 배열은 오름차순으로 정렬되어 있으며, 배열의 요소들은 고유합니다. 문제 설명입력 배열: 정수 배열 nums가 주어지며, 이 배열은 오름차순으로 정렬되어 있습니다.회전: 배열은 한 번 회전될 수 있습니다. 예를 들어, 배열 [0, 1, 2, 4, 5, 6, 7]이 주어질 때, 이 배열이 회전되어 [4, 5, 6, 7, 0, 1, 2]가 될 수 있습니다. 회전 인덱스 k는 1 이상이고 배열의 길이보다 작습니다.목표: 주어진 배열에서 특정 정수 target의 인덱스를 찾는 것입니다. 만약 target이 배열에 없다면 -1을 반환합니다.시간 복잡도: O(log n) 시간 복잡도로 알고리즘을 구현해야 합니다.예.. 2024. 7. 8.
148. Sort List 병합 정렬(Merge Sort) 알고리즘 아이디어를 떠올려야 하는 문제.병합 정렬은 연결 리스트를 정렬하는 데 적합하며, 시간 복잡도 O(nlog⁡n)와  연결 리스트에서 공간 복잡도를 O(1)로 유지할 수 있습니다.public class ListNode { public int val; public ListNode next; public ListNode(int x) { val = x; }}public class Solution { public ListNode SortList(ListNode head) { if (head == null || head.next == null) return head; // Step 1. Split the lis.. 2024. 6. 28.
Get Middle in ListNode(ListNode에서 중간 값 찾기) 연결 리스트의 중간 노드를 찾기 위해 두 개의 포인터(느린 포인터와 빠른 포인터)를 사용합니다. 초기화: slow 포인터는 리스트의 시작 노드인 head로, fast 포인터는 리스트의 두 번째 노드인 head.next로 초기화합니다.이동: slow 포인터는 한 번에 한 노드씩 앞으로 이동하고, fast 포인터는 한 번에 두 노드씩 앞으로 이동합니다.종료 조건: fast 포인터가 리스트의 끝에 도달하거나 끝을 넘어가면 루프가 종료됩니다. 이 시점에서 slow 포인터는 리스트의 중간에 위치하게 됩니다.private ListNode GetMiddle(ListNode head) { if (head == null) return head; ListNode slow = head, fast = head.ne.. 2024. 6. 28.
24. Swap Nodes in Pairs 주어진 연결 리스트에서 매 두 노드씩 쌍을 지어서 교환한 후의 연결 리스트를 반환합니다. 노드는 값만 교환하지 않고 실제로 교환합니다. /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, ListNode next=null) { * this.val = val; * this.next = next; * } * } */public class Solution { public ListNode SwapPairs(ListNode head) { ListN.. 2024. 6. 24.
2024. Maximize the Confusion of an Exam You are given a string answerKey which represents the answers of a student in a multiple-choice exam, where each character is either 'T' (True) or 'F' (False). You are also given an integer 'k', which represents the maximum number of changes you can make (i.e., you can flip 'T' to 'F' or 'F' to 'T'). Your goal is to maximize the length of the longest contiguous subarray containing the same answe.. 2024. 6. 17.
197. Rising Temperature 날씨 테이블(Weather)이 주어졌을 때, 각 날짜의 온도가 이전 날짜(어제)보다 높은 날짜의 ID를 찾는 SQL 쿼리를 작성하는 것입니다.# Write your MySQL query statement belowSELECT A.IDFROM WEATHER AS AINNER JOIN WEATHER AS BON (DATE_SUB(A.RECORDDATE, INTERVAL 1 DAY) = B.RECORDDATE)WHERE A.TEMPERATURE > B.TEMPERATURE;Self-Join + DATEDIFF/SUBDATE 함수: 날씨 테이블을 자체 조인하여 각 행을 이전 행과 비교합니다. 온도가 더 높고 날짜 차이가 하루인 경우 결과로 선택합니다.DATE_SUB(a.recordDate, INTERVAL 1 .. 2024. 5. 10.
2634. Filter Elements from Array 정수 배열 arr과 필터링 함수 fn이 주어졌을 때, 조건을 만족하는 요소만 포함하는 새로운 배열을 반환하는 것입니다. 필터링 함수 fn은 arr[i]와 i를 인자로 받아 참인지 거짓인지 평가하는 함수입니다/** * @param {number[]} arr * @param {Function} fn * @return {number[]} */var filter = function(arr, fn) { const ans = []; arr.forEach((a,index)=>{ if(fn(a,index) != false){ ans.push(a); } }); return ans;};filter 함수는 입력 배열 arr의 각 요소를 순회하며 필터링 함수 .. 2024. 5. 10.
2665. Counter II 초기 정수 init를 받아 세 가지 함수를 가진 객체를 반환하는 함수 createCounter를 작성하는 것입니다. 이 세 가지 함수는 다음과 같습니다: increment(): 현재 값을 1 증가시킨 다음 해당 값을 반환합니다. decrement(): 현재 값을 1 감소시킨 다음 해당 값을 반환합니다. reset(): 현재 값을 init으로 설정한 다음 해당 값을 반환합니다. /** * @param {integer} init * @return { increment: Function, decrement: Function, reset: Function } */var createCounter = function(init) { let cur = init; return{ increment:.. 2024. 5. 10.
728x90
반응형