- 자바에 처음보단 익숙해져서 불편한 느낌은 덜한데, 그래도 코테용으로는 확실히 아닌 것 같다
- 출발이 늦으신 분들도 이제 슬슬 맞춰서 같이 갈 수 있을 것 같아 다행이다
- 아직은 프로그래머스 레벨 1 수준의 문제들이라 무리 없이 소화하고 있다
- stream이나 string buffer 같은 것들을 잘 사용해야 할 것 같다
- 파이썬 DFS 복습
46번
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
result = []
# nums에서 하나 빠져서 prev_nums에 추가 -> 반복, 재귀 -> 순열
def dfs(nums, prev_nums):
if not nums:
result.append(prev_nums[:])
return
for n in nums:
next_nums = nums[:]
next_nums.remove(n)
dfs(next_nums, prev_nums + [n])
dfs(nums, [])
return result
77번
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
ans = []
def dfs(nums, start, k):
if k == 0:
ans.append(nums[:])
return
for i in range(start, n + 1):
dfs(nums + [i], i + 1, k - 1) # 자신 이전 값 빼고 재귀 호출
dfs([], 1, k)
return ans
- dfs 함수에 들어갈 매개변수 설정이 아직은 좀 어렵다