Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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<len(maps) and 0<=ny<len(maps[0]) and maps[nx][ny] !=0:
if maps[nx][ny] ==1:
maps[nx][ny] = maps[x][y]+1
q.append((nx,ny))
return maps[len(maps)-1][len(maps[0])-1]
answer = bfs(0,0)
if answer ==1 :
return -1
return answer
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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]
Original file line number Diff line number Diff line change
@@ -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