일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- autosize
- 호이스팅
- SSR
- 이분 검색
- 무한 스크롤
- Jest
- Cypress
- CI/CD
- async/await
- 투포인터
- 태그된 유니온
- recoil
- Promise
- 인터섹션
- 공변성
- CORS
- 리터럴 타입
- 결정 알고리즘
- ESlint
- TS
- tailwind
- webpack
- 타입 좁히기
- dfs
- map
- 반공변성
- useAppDispatch
- app router
- RTK Query
- React
Archives
- Today
- Total
짧은코딩
음료수 얼려 먹기 본문
반응형
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