국문과 유목민

[DFS] 음료수 얼려 먹기 본문

알고리즘_코딩테스트/이것이 코딩테스트다

[DFS] 음료수 얼려 먹기

논곰 2021. 9. 25. 12:15

1. 문제

- 특이하게 생긴 얼음 틀에 얼음을 몇 개나 만들 수 있는지를 구함

- 주변에 유사한 값의 개수를  찾는다.

2. 코드 구현

n, m = map(int, input().split())

ice = []
for _ in range(n):
    ice.append(list(map(int, input())))
    
# True의 개수만 셀 수 있게 만들어준다.
def dfs(x, y):
    if x < 0 or y < 0 or x>=n or y>= m:
        return False
    if ice[x][y]==0:
        ice[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(n):
    for j in range(m):
        if dfs(i, j) == True:
            result+=1
print(result)

3. 코멘트

- map() list 변수 자리에 stirng을 넣게 되면 리스트로 취급되어 쪼개지게 된다.

- 구현 등에도 사용이 가능할 것으로 생각된다. (원소들이 붙어있는 경우 하나로 생각해야 될 경우(?))

 

'알고리즘_코딩테스트 > 이것이 코딩테스트다' 카테고리의 다른 글

[정렬] 성적이 낮은 순서  (0) 2021.12.07
[정렬] 위에서 아래로  (0) 2021.12.07
[BFS] 미로 탈출  (0) 2021.09.25
[구현] 게임 개발  (0) 2021.09.25
[구현] 왕실의 나이트  (0) 2021.09.25
Comments