๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Problem Solving/PROGRAMMERS

[python]ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฒŒ์ž„ ๋งต ์ตœ๋‹จ๊ฑฐ๋ฆฌ

by DevIseo 2022. 11. 2.

[python]ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฒŒ์ž„ ๋งต ์ตœ๋‹จ๊ฑฐ๋ฆฌ

 

https://school.programmers.co.kr/learn/courses/30/lessons/1844

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

from collections import deque
def solution(maps):
    answer = 0
    
    r = len(maps)
    c = len(maps[0])
    #์ด๋ฏธ ์ง€๋‚˜๊ฐ„ ๊ณณ ์ฒดํฌ
    visit=[[-1]*c for _ in range(r)]
    
    queue = deque()
    #์‹œ์ž‘์  ์ถ”๊ฐ€
    queue.append((0,0))
    visit[0][0]=1
    
	
    while queue:
        y,x = queue.popleft()
        
		#์ƒ ํ•˜ ์ขŒ ์šฐ
        directy = [-1,1,0,0]
        directx = [0,0,-1,1]

        for i in range(4):
            dy = directy[i] + y
            dx = directx[i] + x
			
            # ๋ฒ”์œ„ ์•ˆ์— ์žˆ๊ณ  ๊ธธ์ผ ๋•Œ
            if 0<=dy<r and 0<=dx<c and maps[dy][dx] == 1:
            	#๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ธธ์ด๋ผ๋ฉด
                if visit[dy][dx] == -1:
                    visit[dy][dx] = visit[y][x]+1
                    queue.append((dy,dx))
	
    answer = visit[-1][-1]
    return answer

๋Œ“๊ธ€