Algorithms (6) 썸네일형 리스트형 싱글 링크드리스트 삭제하기 싱글 링크드 리스트에서 현재 노드 cur 를 삭제하려면 다음 두 단계로 수행할 수 있음: 1. cur 의 이전 노드 prev 와 next 노드를 찾는다: 2. prev를 cur의 next 노드로 연결: 첫 번째 단계에서는, 우리는 prev와 next 를 알아내야 함. 그 다음은 cur reference를 사용하여 쉽게 찾을 수 있음. 그러나, 우리는 평균 O(N) 시간이 걸리는 prev를 찾기 위해 헤드 노드에서 링크드리스드를 순회해야 한다. 여기서 N은 링크드리스드의 길이이다. 따라서 노드를 삭제하는 데 걸리는 시간은 O(N)이 된다. 포인터를 저장하기 위해 일정한 공간만 필요하기 때문에 공간 복잡도는 O(1)이다. https://leetcode.com/explore/learn/card/linked-.. 싱글 링크드리스트 추가하기 주어진 노드 이전 뒤에 새 값을 추가하기: 1. 지정된 값으로 새 노드 cur를 초기화 2. cur의 next 를 prev의 next node인 next 에 연결함 3. prev의 next를 cur에 연결시킴. 배열과 달리 삽입된 요소를 지나 모든 요소를 이동할 필요가 없음. 따라서 O(1) 시간 복잡도를 가지는 링크드리스트에 새 노드를 삽입할 수 있으며 매우 효율적임. https://leetcode.com/explore/learn/card/linked-list/209/singly-linked-list/1288/ Account Login - LeetCode Level up your coding skills and quickly land a job. This is the best place to ex.. 동적 계획법 흔히 동적 계획법을 동적 프로그래밍이라고도 부르는데, 일반적으로 사용하는 동적(dynamic), 혹은 프로그래밍(programming) 이런 단어와는 전혀 관련이 없다. 따라서 dynamic programming은 동적 계획법이다. 동적계획법은 거의 대부분 재귀적 알고리즘과 반복적으로 호출되는 문제를 찾아가는 것이 관건이다. 하지만 재귀(recursive) 를 사용해서 스택 layer에 계속 추가를해서 깊이가 깊어 질수록 많은 메모리를 사용해서 메모제이션 기법으로 두번 이상 반복 계산되는 부분 문제들의 답을 저장함으로써 속도를 꾀할 수 있다. 재귀를 사용해서 푸는 문제중 가장 대표적인 피보나치 수열을 통해 동적 계획법을 적용해보자. int fibonacci(int i) { if (i == 0) retur.. Palindrome(회문) 알고리즘 Palindrome이라는 단어가 뭔지 몰랐는데 문제를 읽고 문자열이 데칼코마니를 만들어내면 풀 수 있다고 생각함. Sample Input madam → O maddam → O pppaapp → X sziofsjifzsfwu8 -> X Palindrome란? 팰린드롬이란 우리 말로 ‘회문(回文)’으로 번역되며 ‘eye' 'madam'처럼 역순으로 읽어도 같은 말이나 구절 또는 숫자를 말하며, 일반적으로 단어 사이 구두점과 뛰어 쓰기 조정은 허용된다. 이 문제를 접근할땐 시간복잡도로 O(N)의 복잡도를 가질필요가 없다고 생각함. O(N/2)의 복잡도를 가지면서 left는 인덱스를 그대로 증가하면서 right은 배열의 길이에 증가된 인덱스만큼 감소시키면 적절하게 풀 수 있을거라 생각함. public stati.. 1290. Convert Binary Number in a Linked List to Integer(비트연산) Given head which is a reference node to a singly-linked list. The value of each node in the linked list is either 0 or 1. The linked list holds the binary representation of a number. Return the decimal value of the number in the linked list. 링크드리스트의 각 노드 값은 0 또는 1 이다,. 링크드리스트는 이진수를 표현한다. 결과는 이진수를 10진수로 반환한다. Input: head = [1,0,1] Output: 5 Explanation: (101) in base 2 = (5) in base 10 Input: hea.. leetcode 1281번 문제풀이 https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/ Subtract the Product and Sum of Digits of an Integer - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Given an integer number n, return the difference between the product of its digits and the sum .. 이전 1 다음