일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- #내일배움단 #코딩프로젝트 #국비지원 #내일배움카드 #스파르타코딩클럽
- 스파르타코딩클럽 #코딩 #jQuery #Ajax
- 스파르타코딩클럽 #크롤링 #스크래핑
- 항해99솔직후기 #항해99 #부트캠프추천
- 부트스트랩 #Bootstrap #웹개발첫걸음 #스파르타코딩클럽
- Today
- Total
목록coding (165)
이모저모

와 이번에가 DFS 문제 풀던 중 그나마(?!) 정돈되게 생각하고 풀었던 것 같다ㅠㅠ 그래도 이번에도 역시, 계획단계에서 잘못 생각했던 부분이 있었다. starting point를 재귀의 어느 레벨에서 갱신해주었는지 명확히 짚지 않고 생각했기 때문이다. 앞으로는 재귀를 풀 때 어느 레벨에서 어떤 처리까지 해주었는지 꼭꼭 명료히 하면서 풀어야지..! def DFS(L, start, pay): global max_pay global info global n if start >= n+1: if pay > max_pay: max_pay = pay return else: for i in range(start, n+1): DFS(L+1, i+info[i][0], pay + info[i][1]) if __name__..

손손손~ 손필기가 좋다아 def DFS(L, start, time, score): global max_score if time > max_time: if score-info[start-1][0] > max_score: max_score = score-info[start-1][0] elif time == max_time: # 시간이 초과한건지, 딱 맞는지에 따라 고려할 score의 레벨이 다름 if score > max_score: max_score = score return else: for i in range(start, n): DFS(L+1, i+1, time + info[i][1], score + info[i][0]) if __name__ == "__main__": n = 5 max_time = 2..

def DFS(L, starting_i, now_sum): global count if L == k: if now_sum % 6 == 0: count += 1 return else: for i in range(starting_i, len(nums)): DFS(L+1, i+1, now_sum+nums[i]) # 나는 처음엔 인덱스가 아니라 숫자 자체로 다루려고 했는데 # 인덱스 사용이 훨씬 확실하고 나중에 혼란이 적은 것 같다! if __name__ == "__main__": nums = [2, 4, 5, 8, 12] k = 3 n = 6 count = 0 DFS(0, 0, 0) print(count)

1. 손으로 정리 2. 코드로 해보기 처음에는, 특정 값이 없다는 의미로 0을 배치해두려고 했는데 0이 nums의 원소로 들어오는 경우도 있었다.. 그래서 결국 개연성 전혀 없지만 "@"로 배정 안 되었다는 의미를 나타내보았다.. 흠.. 그리고 일단 일단 무의미한 값 배정했다가 빼기보다는, 애초부터 포함 안 시키면 좋겠다 싶은데.. 그러면 작업이 한 차례 줄어드니까. 더 생각해보 - 거나 다른 분들 코드 좀 봐야지! class Solution(object): def subsets(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ res = ["@"]*len(nums) result_list = [] def DFS(L): if L == l..

1. 사랑하는 아이패드와 애플팬슬과 함께.. 2. 이제 코드로 옮겨보기 class Solution(object): def numIslands(self, grid): """ :type grid: List[List[str]] :rtype: int """ count = 0 # dx 와 dy 의 i 번째들을 동시에 참조해서 상하좌우 이동할 것. dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] def DFS(x,y): if grid[x][y] == "0": return else: grid[x][y] = "0" for i in range(4): new_x = x + dx[i] new_y = y + dy[i] if 0

def make_adjacency_matrix(nodes: int, connects_list: list): graph = [[0]*(nodes+1) for _ in range(nodes+1)] # 앞의 한 칸 0번이 추가로 만들어지지만 인덱스를 노드 번호로 바로 사용하기 위해 요렇게 준비시켜준다. for connect in connects_list: from_node = connect[0] # 시작 노드(from) 뽑고 to_node = connect[1] # 도착 노드(to) 뽑고 weight = connect[2] # from -> node 로의 가중치 뽑고 graph[from_node][to_node] = weight # 준비해둔 행렬에 정보를 넣는다. (from 행(시작노드)에서 to 열(도착노드..