| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 31 | 
													Tags
													
											
												
												- 무한 스크롤
- recoil
- 태그된 유니온
- Jest
- 공변성
- 반공변성
- autosize
- dfs
- 결정 알고리즘
- 호이스팅
- map
- RTK Query
- 타입 좁히기
- async/await
- MSA
- app router
- tailwind
- 인터섹션
- 투포인터
- CORS
- ESlint
- useAppDispatch
- 인증/인가
- SSR
- CI/CD
- React
- Promise
- TS
- 리터럴 타입
- webpack
													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)-선택, 삽입 정렬 (1) | 2022.05.27 | 
|---|---|
| 괴물 탈출 (0) | 2022.05.26 | 
| 탐색 알고리즘 DFS/BFS (0) | 2022.05.12 | 
| 재귀 함수 (0) | 2022.05.12 | 
| 게임 개발 (0) | 2022.05.10 | 
			  Comments
			
		
	
               
           
					
					
					
					
					
					
				 
								 
								