분류 전체보기(189)
-
[Leetcode/Medium] 홀짝 연결 리스트 (328. Odd Even Linked List, Swift)
https://leetcode.com/problems/odd-even-linked-list/ 🤔 문제 설명연결 리스트를 홀수 노드 다음에 짝수 노드가 오도록 재정렬하라.단, 공간 복잡도 O(1), 시간 복잡도 O(n) 안에 문제를 풀어야 한다.head = [1,2,3,4,5]// [1,3,5,2,4] 💡 풀이내가 생각한 방법은 이렇다.head 연결 리스트에서 홀수번째에 있는 값은 odd라는 연결 리스트로, 짝수번째에 있는 값은 even이라는 별도의 연결 리스트로 연결을 한다.head 연결 리스트를 반복하면서, 각각 2칸씩 건너뛰면서 연결 리스트를 추가한다. + 이동까지(홀수 노드의 경우 : oddNodes.next = oddNodes.next.next / 짝수 노드의 경우 : evenNodes.nex..
2024.07.11 -
[Basis] 내가 보려고 정리하는 개발 용어 사전 (2) - 비즈니스 로직 (Business Logic)
은 블로그에서 시리즈로 연재하고 있는 글이다.정말 오랜만에 이 시리즈 글을 쓰느라 깜빡했을 수도 있지만, 아래에 1탄 글을 첨부해 뒀으니 궁금하신 분은 가서 읽어보시길 ^___^ [Basis] 내가 보려고 정리하는 개발 용어 사전 (1) - 프레임워크(Framework)와 라이브러리(Library)개발 공부를 한 지 2년이 훌쩍 지났다.하지만, 학교에서도 복수전공은 한 학기 수업 정도, 나머지 1년 반 정도의 시간은 군대에서 보내느라.. 아직까지 내 머릿속에는 개발과 관련된 용어들이 명mini-min-dev.tistory.com"비즈니스 로직을 분리하라"아키텍처를 공부하다가 많이 보던 문장이다.혹시 이 문장을 보고 "그래서 비즈니스 로직이 뭔데?" "나는 사업을 하고 있지 않은데 비즈니스가 왜 나오는 거..
2024.07.10 -
[Leetcode/Medium] 두 수의 덧셈 (2. Add Two Numbers, Swift)
https://leetcode.com/problems/add-two-numbers/ 🤔 문제 설명음이 아닌 정수를 나타내는 두 개의 연결 리스트가 제공된다.각 연결 리스트는 역순으로 저장되어 있으며, 두 숫자를 더하고 합계를 연결 리스트로 반환하라.l1 = [2,4,3], l2 = [5,6,4]// [7,0,8] (342 + 465 = 807) 💡 풀이첫 번째 생각했던 방식은 아래와 같다. *조금 복잡하니까 읽어보고 싶은 사람만 천천히 읽어볼 것l1과 l2를 끝에까지 이동하면서 각각을 배열로 저장한 후, reversed로 뒤집고, 정수로 바꾼다. (ex. [2,4,3] -> [3,4,2] -> 342)두 정수 값을 더하고, 다시 배열로 저장한 후, reversed로 뒤집는다. (807 -> [8,0,..
2024.07.10 -
[Leetcode/Medium] 페어의 노드 스왑 (24. Swap Nodes in Pairs, Swift)
https://leetcode.com/problems/swap-nodes-in-pairs/ 🤔 문제 설명연결 리스트를 입력받아 인접한 두 노드(페어 단위)마다 교환(스왑)하고 연결 리스트를 반환해라.단, 노드 자체만 변경할 수 있으며, 리스트의 노드 값을 수정해서는 안된다.head = [1,2,3,4]// [2,1,4,3] 💡 풀이예시 문제를 기준으로 바꿔야 하는 값이 어떤 것인지만 헷갈리지 않고, 차근차근 코드를 짜면 해결할 수 있었다.a->b->c 연결 리스트를 b->a->c로 바꿔주는 경우를 생각해 보자. 반복하는 대상(moveNodes)은 두 칸씩 이동하도록 한다. (반복 시에는 moveNodes.next값도 nil이 아니어야만 swap할 수 있음)앞의 값을 first = a, 뒤의 값을 se..
2024.07.10 -
[Leetcode/Easy] 두 정렬 리스트의 병합 (21. Merge Two Sorted Lists, Swift)
https://leetcode.com/problems/merge-two-sorted-lists/description/ 🤔 문제 설명두 개의 정렬된 연결 리스트 list1과 list2가 주어진다.이때, 처음 두 연결 리스트의 노드를 서로 연결하여 하나의 연결 리스트로 만들어라 (병합해라).list1 = [1,2,4], list2 = [1,3,4]// [1,1,2,3,4,4] 💡 풀이단순하게 두 연결 리스트가 모두 nil이 아닐 때까지는 각 연결 리스트의 앞 값을 기반으로 비교하고, 둘 중 더 작은 값을 반환할 병합 리스트에 연결하고, (연결해줄 병합 리스트와 + 사용한 연결 리스트를) 한 칸 전진시키는 방식으로 단순하게 연결해나가면 된다.둘 중 하나의 연결 리스트가 nil이 되는 순간 (혹은 연결 리스..
2024.07.09