본문 바로가기

리트코드 연결리스트5

swift 리트코드 문제풀이 - leetcode 24 페어의 노드 스왑 swift 리트코드 문제풀이 - leetcode 24 페어의 노드 스왑 24. Swap Nodes in Pairs 문제 연결 리스트를 입력받아 페어 단위로 스왑(Swap)하여라. 문제의 이해 문제 내용을 한번 살펴보면! 문제의 제시문 그대로다... 인자로 연결 리스트가 주어지고, 우리는 우리가 구현할 함수 안에서 이 주어진 연결 리스트 안의 노드들의 값을 둘씩 짝을 지어서 서로 교환해서 리턴해주면 된다. 예를 들어 위의 그림에서 1,2,3,4 연결리스트가 들어왔으면 둘씩 짝을 지으면 (1,2) (3,4) 이렇게 짝을 지을 수 있다. 그리고 짝지어진 노드들을 서로 바꾸면 (2,1) (4,3) 이렇게 작성할 수 있겠다. 자 그럼..! 풀이 시나리오 [1] 일단 연결리스트의 모든 노드들을 스캔해야 되기 때문에.. 2022. 8. 4.
swift 리트코드 문제풀이 - leetcode 206 역순 연결리스트 swift 리트코드 문제풀이 - leetcode 206 역순 연결리스트 206. Reverse Linked List 문제 연결리스트를 뒤집어라 얼핏보고 좀 간한하네? 라고 생각했다. 연결리스트의 point를 이용해서도 뒤집을 수 있을 것 같은데 이번에도 swift의 배열을 이용해보기로 했다. 1.함수안에 빈배열을 선언한다. 2.입력 받은 연결 리스트를 while문을 돌면서 배열에 값을 넣어준다. 3.배열을 뒤집는다. 4.배열안의 요소를 연결리스로 만들어 준다. 끝~! 위의 아이디어를 토대로 소스코드를 작성해보았다. public class ListNode { public var val: Int public var next: ListNode? public init() { self.val = 0; self.n.. 2022. 8. 3.
swift 리트코드 문제풀이 - leetcode 21 두 정렬 리스트의 병합 swift 리트코드 문제풀이 - leetcode 21 두 정렬 리스트의 병합 leetcode 21. Merge Two Sorted Lists 문제 아래 처럼 정렬이 되어 있는 두 연결 리스트를 합하라. 위의 그림에서 빨간색 연결리스트를 A 연결리스트라고 하고 보라색 연결 리스트를 B라고 해보자 리트코드 swift 답쓰기란을 보면 아래와 같은 함수가 주어진다. 아래 함수를 호출 할때 연결리스트 A와 연결 리스트 B를 인자로 전달하면 아래 함수는 두 A,B 연결리스트 안의 숫자들을 비교해서 오름차순으로 정렬한 새로운 연결리스트 C를 리턴해주면된다. func mergeTwoLists(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? { return } 일단 문제를 보자마자 든.. 2022. 8. 3.
swift 리트코드 문제풀이 - leetcode 234 팰린드롬 연결 리스트 - ver.2 swift 리트코드 문제풀이 - leetcode 234 팰린드롬 연결 리스트 - ver.2 leetcode 234. Palindrome Linked List 이전 포스팅에서 연결 리스트를 이용한 팰린드롬 체크 문제를 while문과 배열을 이용해서 풀어보았다. (swift 리트코드 문제풀이 - leetcode 234 팰린드롬 연결 리스트) 이번 포스팅에서는 다른 방법을 이용해서 팰린드롬 연결 리스트 문제를 풀어볼려고 한다. 준비 코드는 이전 포스팅에서 설명을 했으므로, 이번 포스팅에서는 간단히 코드만 작성해놓는다... 아래와 같은 연결 리스트가 있고, 이 연결 리스트의 값이 팰린드롬인지 확인을 해보자. 즉 거꾸로해도 같은 값인지 체크를 하는 것이다. let nodeFive = ListNode(1) let .. 2022. 8. 1.
swift 리트코드 문제풀이 - leetcode 234 팰린드롬 연결 리스트 swift 리트코드 문제풀이 - leetcode 234 팰린드롬 연결 리스트 leetcode 234. Palindrome Linked List 예제 이번에는 문제를 풀기전에 연결 리스트가 어떤 자료구조인지 알고 있어야 된다.. 연결 리스트의 장단점과 특징을 알고 있어야 되고, 연결 리스트를 코드로 간단하게라도 구현 할 수 있어야 한다. 아니면 최소 연결 리스트 코드를 보고 이해할 정도만되어도 될것 같다! 왜냐면 leetcode에서 연결 리스트의 노드에 해당하는 코드를 제공해 주기 때문이다. 아래 코드 처럼 연결 리스트의 각각의 Node에 해당하는 class 를 제공해준다. 그렇기 때문에 우리는 ListNode 클래스를 어떻게 사용해서 문제를 풀건지만 생각하면 된다. public class ListNode.. 2022. 8. 1.