본문 바로가기

반응형

recursive

(3)
[리트코드] Permutations(python) 리트코드, Permutations_순열 TL;DR DFS(깊이 우선 탐색) 문제 분석 1. 주어진 숫자 배열에 대해 만들 수 있는 모든 순열을 반환하라. 2. 반환된 배열은 어떤 순서로 되어 있어도 상관 없다. - 주어진 숫자들로 만들 수 있는 순열을 반환하면 된다. 입출력 형태 풀이 class Solution: def permute(self, nums: List[int]) -> List[List[int]]: answer = [] def dfs(v: int, permutation: List[int] = []): permutation.append(v) if len(permutation) == len(nums): answer.append(permutation) return for num in nums: if..
[리트코드] Letter Combinations of a Phone Number(python) 리트코드, Letter Combinations of a Phone Number_핸드폰 글자 조합하기 TL;DR DFS 문제 분석 1. 핸드폰 자판 2-9에는 문자들이 할당되어 있다. 2. 주어진 자판 조합에 대해서 만들 수 있는 모든 문자들을 반환하라. 3. 반환하는 문자의 순서는 상관 없다. - 문제에서 주어진 핸드폰 2 ~ 9에는 a ~ z까지의 문자가 할당되어 있다. - 문제에서 숫자 조합을 주어지면 해당 문자에 할당된 알파벳을 조합할 수 있는 모든 경우의 수를 반환하면 된다. 입출력 형태 - 예시 1 : 자판 23이 주어졌다면 만들 수 있는 조합은 "abc"와 "def"를 활용한 총 9개의 조합이다. - 예시 3 : 하나의 자판이 주어졌다면 만들 수 있는 조합은 할당된 알파벳은 "abc"를 각각 ..
[프로그래머스] 피보나치 수(python) 프로그래머스, 피보나치 수 TL;DR 재귀(Recursive) 또는 동적 프로그래밍(Dynamic programming)을 활용할 수 있는지 문제 분석 1. 2 이상 n 이하의 주어진 입력에 따라 피보나치 코드를 완성하라. 2. 완성된 피보나치 수는 1234567로 나눈 나머지를 리턴해야 한다. - 1 : 해결해야 하는 문제 조건을 알려주고 있다. - 2 : 구한 피보나치 수를 1234567로 나눈 나머지로 구해야 한다. 입출력 형태 - 주어진 n번째 피보나치 수를 구하면 된다. - 문제 조건 2에 따라서 각 피보나치 수는 1234567로 나눈 나머지를 반환해야 한다. - 이 이유는 피보나치 수가 n에 따라서 점점 많이 커지기 때문에 표현할 수 있는 범위를 넘어갈 수 있기 때문이다. 풀이 def solu..