IT/Algorithm(29)
-
Leetcode 93. Restore IP Addresses - Python
Leetcode 93 문제 보기 문제 이해하기 일련의 숫자 s가 주어진다. (1 1) or int(digit) > 255): return cur.append(digit) dfs(i + 1, dots - 1) cur.pop() dfs(0, 4) return res Leetcode 93. Restore IP Addresses https://leetcode.com/problems/restore-ip-addresses/ -문제해결흐름을 간단히 정리한 주관적 포스팅- -부족한 설명이 있다면 부디 조언 부탁드립니다- 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다
2022.03.29 -
Leetcode 1980. Find Unique Binary String - Python
Leetcode 1980 문제 보기 문제 이해하기 각각의 길이가 n인 n개의 이진수 문자열(binary string)들의 리스트인 nums가 있다. (1
2022.03.28 -
Leetcode 40. Combination Sum II - Python
Leetcode 40 문제 보기 문제 이해하기 1에서 50까지의 수로 이루어진 리스트 candidates가 있다. (1 target: last_idx = c break dfs()의 base case는 다음과 같다. target에서 값을 계속 빼나갈 때, 값이 0이 되는 순간 해당하는 조합을 res에 담고 return한다. if remain == 0: res.append(combi[:]) return dfs()의 재귀 부분은 다음과 같다. 아이디어 구상에서 살펴봤듯이, 탐색을 진행했던 원소와 동일한 값의 원소가 있을 경우, 그 원소의 탐색은 skip한다. 이 때, 이전 원소의 값을 보관하기 위한 변수 pre를 -1로 초기화한다. (candidates의 모든 원소는 1이상이기 때문) 탐색 시 remain <..
2022.03.25 -
Leetcode 51. N-Queens - Python (cf. 백준 9663)
Leetcode 51 문제 보기 문제 이해하기 n X n 체스판 위에 n개의 queen을 배치하려한다. (1
2022.03.24 -
Leetcode 1849. Splitting a String Into Descending Consecutive Values - Python
Leetcode 1849 문제 보기 문제 이해하기 0 ~ 9까지의 숫자로 이루어진 문자열 s를 2개 이상의 substring으로 나눠보자. 이 때 각 substring들이 바로 이전의 substring에 비해 1이 작은 수로 이루어져 있다면, 즉 "substring = previous_substring - 1"일 경우, true를 return하는 프로그램을 작성하라. 각각의 substring은 빈 문자열이서는 안되며, substring은 1개 이상, 20개 이하의 숫자로 이루어져있다. 또한 1 ~ 9 이전에 등장하는 "0"은 무시해도 된다. 즉, "05" 은 숫자 5다. 아이디어 구상 Decision Tree를 그리며 생각해보자. s = "050043"인 test case를 살펴보자. 적어도 한 번은 s..
2022.03.23 -
Leetcode 17. Letter Combinations of a Phone Number - Python
Leetcode 17 문제 보기 문제 이해하기 스마트폰이 출현하기 이전, 휴대폰의 자판은 위 그림과 같았다. 전화번호의 각 번호는 특정 알파벳들과 매칭이 된다. 어떤 번호가 주어진다면, 해당 번호를 이용해 출력 가능한 단어들을 구하라. 번호는 2~9로 이루어져 있으며, 번호의 길이는 최소 0부터 최대 4까지 가능하다. 아이디어 구상 Decision Tree를 그리며 생각해보자. digits = "23"인 test case를 살펴보자. 이 때 트리의 각 level은 주어진 digits의 각 숫자를 탐색하는 경우에 해당된다. 모든 조합을 찾아야하므로, Brute Force하게 탐색을 해야한다. DFS를 활용해 가능한 알파벳 조합들을 하나씩 얻어 결과 리스트에 넣고, 최종적으로 정답을 출력하면 되겠다. 이 때..
2022.03.22