반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

음료수 얼려 먹기 본문

코딩 테스트(Python)/이것이 취업을 위한 코딩 테스트다

음료수 얼려 먹기

5_hyun 2022. 5. 17. 01:24
반응형

n, m = map(int, input().split())
ary = []

for i in range(n):
    x = list(map(int, input()))
    ary.append(x)

def dfs(x, y):
    #범위 체크
    if x <= -1 or x >= n or y <= -1 or y >= m:
        return False
    #방문했는지 체크
    if ary[x][y] == 1:
        return False
    #상하좌우 탐색
    ary[x][y] = 1
    dfs(x-1, y)
    dfs(x, y-1)
    dfs(x+1, y)
    dfs(x, y+1)
    return True

count = 0
for i in range(n):
    for j in range(m):
        if dfs(i, j):
            count += 1
print(count)

​(0, 0)부터 DFS 탐색으로 좌우앞뒤를 재귀적으로 확인한다. 그래서 더 이상 재귀적으로 탐색할게 없으면 1개의 얼려진 음료가 생기는 것이다. 그리고 방문했으면 막혔다는 1로 바꿔줘서 방문했다고 표시를 해준다. 이렇게 한 재귀가 끝날때마다 아이스크림 1개가 만들어진다.

반응형

'코딩 테스트(Python) > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글

정렬(1)-선택, 삽입 정렬  (0) 2022.05.27
괴물 탈출  (0) 2022.05.26
탐색 알고리즘 DFS/BFS  (0) 2022.05.12
재귀 함수  (0) 2022.05.12
게임 개발  (0) 2022.05.10
Comments