https://school.programmers.co.kr/learn/courses/30/lessons/154540
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
bfs로 풀 수 있는 문제임을 바로 알았다. 나 bfs 이제 좀 잘하는듯 ㅎ
from collections import deque
def solution(maps):
answer = []
N, M = len(maps), len(maps[0])
visited = [[False]*M for _ in range(N)]
dx = [1, 0, -1, 0]
dy = [0, 1, 0, -1]
def get_sum_of_days(start_x, start_y):
visited[start_x][start_y] = True
cnt = 0
q = deque([(start_x, start_y)])
while q:
x, y = q.popleft()
cnt += int(maps[x][y])
for i in range(4):
nx, ny = x + dx[i], y + dy[i]
if (0 <= nx < N and 0 <= ny < M) and maps[nx][ny] != 'X':
if not visited[nx][ny]:
visited[nx][ny] = True
q.append((nx, ny))
return cnt
for i in range(N):
for j in range(M):
if maps[i][j] != 'X' and not visited[i][j]:
answer.append(get_sum_of_days(i, j))
if not answer:
answer.append(-1)
else:
answer.sort()
return answer
[프로그래머스] 154538. 숫자 변환하기| DP | 파이썬, 소스코드, 정답 (0) | 2023.05.12 |
---|---|
[프로그래머스] 154539. 뒤에 있는 큰 수 찾기| 스택 | 파이썬, 소스코드, 정답 (2) | 2023.05.11 |
[프로그래머스] 155651. 호텔 대실 | 정렬, 우선순위큐 | 파이썬, 소스코드, 정답 (1) | 2023.05.09 |
[프로그래머스] 159993. 미로탈출 | BFS | 파이썬, 소스코드, 정답 (0) | 2023.05.08 |
[프로그래머스] 160585. 혼자서 하는 틱택토 | 구현 | 파이썬, 소스코드, 정답 (0) | 2023.05.07 |