From d35be9d1102689a97da4b970339d4ea4bf83aa5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SeungJoo=F0=9F=8D=8E?= Date: Mon, 28 Aug 2023 22:33:48 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=ED=83=80=EA=B2=9F=EB=84=98=EB=B2=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...204_\352\271\200\354\212\271\354\243\274.py" | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 "Programmers/DFS_BFS/\355\203\200\352\262\237\353\204\230\353\262\204_\352\271\200\354\212\271\354\243\274.py" diff --git "a/Programmers/DFS_BFS/\355\203\200\352\262\237\353\204\230\353\262\204_\352\271\200\354\212\271\354\243\274.py" "b/Programmers/DFS_BFS/\355\203\200\352\262\237\353\204\230\353\262\204_\352\271\200\354\212\271\354\243\274.py" new file mode 100644 index 00000000..07bc0211 --- /dev/null +++ "b/Programmers/DFS_BFS/\355\203\200\352\262\237\353\204\230\353\262\204_\352\271\200\354\212\271\354\243\274.py" @@ -0,0 +1,17 @@ +def solution(numbers, target): + + n = len(numbers) + count = 0 + def dfs(i, result): + + if(i== n): + if(result == target): + nonlocal count + count+=1 + return + else: + dfs(i+1, result + numbers[i]) + dfs(i+1, result - numbers[i]) + dfs(0,0) + + return count \ No newline at end of file From 149b4fb0de4328476cee73752153ec68315175e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SeungJoo=F0=9F=8D=8E?= Date: Mon, 28 Aug 2023 22:34:08 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=EB=84=A4=ED=8A=B8=EC=9B=8C=ED=81=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4_\352\271\200\354\212\271\354\243\274.py" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "Programmers/DFS_BFS/\353\204\244\355\212\270\354\233\214\355\201\254_\352\271\200\354\212\271\354\243\274.py" diff --git "a/Programmers/DFS_BFS/\353\204\244\355\212\270\354\233\214\355\201\254_\352\271\200\354\212\271\354\243\274.py" "b/Programmers/DFS_BFS/\353\204\244\355\212\270\354\233\214\355\201\254_\352\271\200\354\212\271\354\243\274.py" new file mode 100644 index 00000000..eda07b63 --- /dev/null +++ "b/Programmers/DFS_BFS/\353\204\244\355\212\270\354\233\214\355\201\254_\352\271\200\354\212\271\354\243\274.py" @@ -0,0 +1,24 @@ +from collections import deque +# 서로소 집합 찾기 - bfs 하나씩 돌면서! 처리! +def solution(n, computers): + answer = 0 + visited = [False for _ in range(len(computers))] + + def bfs(i): + q = deque() + q.append(i) + visited[i] = True + + while q: + index = q.popleft() + + for k in range(len(computers[index])): + if computers[index][k] == 1 and not visited[k] : + visited[k] = True + q.append(k) + + for i in range(len(computers)): + if not visited[i] : + bfs(i) + answer+=1 + return answer \ No newline at end of file From 2196b6b79abf4060d15871c7e7d8bbacdadc4264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SeungJoo=F0=9F=8D=8E?= Date: Mon, 28 Aug 2023 22:34:28 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EA=B2=8C=EC=9E=84=EB=A7=B5=20=EC=B5=9C?= =?UTF-8?q?=EB=8B=A8=EA=B1=B0=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4_\352\271\200\354\212\271\354\243\274.py" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "Programmers/DFS_BFS/\352\262\214\354\236\204\353\247\265\354\265\234\353\213\250\352\261\260\353\246\254_\352\271\200\354\212\271\354\243\274.py" diff --git "a/Programmers/DFS_BFS/\352\262\214\354\236\204\353\247\265\354\265\234\353\213\250\352\261\260\353\246\254_\352\271\200\354\212\271\354\243\274.py" "b/Programmers/DFS_BFS/\352\262\214\354\236\204\353\247\265\354\265\234\353\213\250\352\261\260\353\246\254_\352\271\200\354\212\271\354\243\274.py" new file mode 100644 index 00000000..30d2a24d --- /dev/null +++ "b/Programmers/DFS_BFS/\352\262\214\354\236\204\353\247\265\354\265\234\353\213\250\352\261\260\353\246\254_\352\271\200\354\212\271\354\243\274.py" @@ -0,0 +1,27 @@ +from collections import deque +def solution(maps): + answer = 0 + + dx = [-1, 1, 0, 0] + dy = [0, 0, -1, 1] + + def bfs(x, y): + q = deque() + q.append((x,y)) + + while q: + x,y = q.popleft() + + for i in range(4): + nx = x + dx[i] + ny = y + dy[i] + + if 0<=nx Date: Mon, 28 Aug 2023 22:34:43 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EB=8B=A8=EC=96=B4=EB=B3=80=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0_\352\271\200\354\212\271\354\243\274.py" | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 "Programmers/DFS_BFS/\353\213\250\354\226\264\353\263\200\355\231\230_\352\271\200\354\212\271\354\243\274.py" diff --git "a/Programmers/DFS_BFS/\353\213\250\354\226\264\353\263\200\355\231\230_\352\271\200\354\212\271\354\243\274.py" "b/Programmers/DFS_BFS/\353\213\250\354\226\264\353\263\200\355\231\230_\352\271\200\354\212\271\354\243\274.py" new file mode 100644 index 00000000..0515fa5b --- /dev/null +++ "b/Programmers/DFS_BFS/\353\213\250\354\226\264\353\263\200\355\231\230_\352\271\200\354\212\271\354\243\274.py" @@ -0,0 +1,31 @@ +from collections import deque + +def solution(begin, target, words): + + if target not in words: # target이 없어서 변환할 수 없는 경우 + return 0 + # 단어의 길이가 짧고 단어개수가 적으니 + answer = 0 + visited = [ False for _ in range(len(words))] + + def bfs(): + q = deque() + q.append((begin,0)) + + while q: + word, n_count = q.popleft() + if word == target: + return n_count + else: + for i in range(len(words)): + count =0 + if not visited[i] : + for j in range(len(words[i])): + if words[i][j] != word[j]: + count+=1 + if count ==1 : + visited[i] = True + q.append((words[i], n_count+1)) + answer= bfs() + + return answer \ No newline at end of file From b1edfddba3aafedc56baa5ea7576080c91c244c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SeungJoo=F0=9F=8D=8E?= Date: Mon, 28 Aug 2023 22:34:59 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EC=97=AC=ED=96=89=20=EA=B2=BD=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4_\352\271\200\354\212\271\354\243\274.py" | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 "Programmers/DFS_BFS/\354\227\254\355\226\211\352\262\275\353\241\234_\352\271\200\354\212\271\354\243\274.py" diff --git "a/Programmers/DFS_BFS/\354\227\254\355\226\211\352\262\275\353\241\234_\352\271\200\354\212\271\354\243\274.py" "b/Programmers/DFS_BFS/\354\227\254\355\226\211\352\262\275\353\241\234_\352\271\200\354\212\271\354\243\274.py" new file mode 100644 index 00000000..e69aa285 --- /dev/null +++ "b/Programmers/DFS_BFS/\354\227\254\355\226\211\352\262\275\353\241\234_\352\271\200\354\212\271\354\243\274.py" @@ -0,0 +1,19 @@ +def solution(tickets): + answer = [] + + visited = [False] * len(tickets) + + # dfs로 + def dfs(start_point, root): + + if len(tickets) +1 == len(root): + answer.append(root) + return + for idx, ticket in enumerate(tickets): + if start_point == ticket[0] and not visited[idx] : + visited[idx] = True + dfs(ticket[1], root+[ticket[1]]) + visited[idx] = False # 백트래킹 + dfs("ICN", ["ICN"]) + answer.sort() + return answer[0] \ No newline at end of file