-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
92 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# N 입력받기 | ||
n = list(input()) | ||
|
||
x = n[0] | ||
y = n[1] | ||
print(x, y) | ||
|
||
# # 이동 방향 | ||
# dx = [2, 2, 1, 1, -1, -1, -2, -2] | ||
# dy = [1, -1, 2, -2, 2, -2, -1, 1] | ||
# # | ||
# # 이동 계획을 하나씩 확인 | ||
# for plan in plans: | ||
# # 이동 후 좌표 구하기 | ||
# for i in range(len(move_types)): | ||
# if plan == move_types[i]: | ||
# nx = x + dx[i] | ||
# ny = y + dy[i] | ||
# # 공간을 벗어나는 경우 무시 | ||
# if nx < 1 or ny < 1 or nx > n or ny > n: | ||
# continue | ||
# # 이동 수행 | ||
# x, y = nx, ny | ||
# | ||
# print(x, y) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
|
||
def dfs(graph, v, visited): | ||
# 현재 노드를 방문 처리 | ||
visited[v] = True | ||
print(v, end = '') | ||
# 현재 노드와 연결된 다른 노드를 재귀적으로 방문 | ||
for i in graph[v]: | ||
if not visited[i]: | ||
dfs(graph, i, visited) | ||
|
||
|
||
# 각 노드가 연결된 정보를 리스트 자료형으로 표현(2차원 리스트) | ||
graph = [ | ||
[], | ||
[2, 3, 8], # 1번 노드와 연결된 노드들의 리스트 | ||
[1, 7], # 2번 노드와 연결된 것 | ||
[1, 4, 5], # 3번 노드와 연결된 것 | ||
[3, 5], # 4번 노드와 연결된 것 | ||
[3, 4], # 5번 노드와 연결된 것 | ||
[7], # 6번 노드와 연결된 것 | ||
[2, 6, 8], # 7번 노드와 연결된 것 | ||
[1, 7] # 8번 노드와 연결된 것 | ||
] | ||
|
||
# 각 노드가 방문된 정보를 리스트 자료형으로 표현(1차원 리스트) | ||
visited = [False] * 9 | ||
|
||
# 정의된 DFS 함수 호출 | ||
dfs(graph, 1, visited) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
|
||
data = [] | ||
a, b = map(int, input().split()) | ||
|
||
data = [] | ||
for i in range(a): | ||
data.append(list(map(int, input()))) | ||
|
||
dx, dy = [1, 0, -1, 0], [0, 1, 0, -1] | ||
|
||
# DFS로 특정한 노드를 방문한 뒤에 연결된 모든 노드들도 방문 | ||
def dfs(x, y): | ||
# 주어진 범위를 벗어나는 경우에는 즉시 종료 | ||
if x <= -1 or x >= a or y <= -1 or y >= b: | ||
return False | ||
|
||
# 현재 노드를 아직 방문하지 않았다면 | ||
if data[x][y] == 0: | ||
# 해당 노드 방문 처리 | ||
data[x][y] = 1 | ||
# 상, 하, 좌, 우의 위치들도 모두 재귀적으로 호출 | ||
dfs(x - 1, y) | ||
dfs(x, y - 1) | ||
dfs(x + 1, y) | ||
dfs(x, y + 1) | ||
return True | ||
return False | ||
|
||
# 모든 노드(위치)에 대하여 음료수 채우기 | ||
result = 0 | ||
for i in range(a): | ||
for j in range(b): | ||
# 현재 위치에서 DFS 수행 | ||
if dfs(i, j) == True: | ||
result += 1 | ||
print(i,j,dfs(i, j), result) | ||
|
||
print(result) |