peacekim
할 수 있는 것과 할 수 없는 것.
peacekim
전체 방문자
오늘
어제
  • 분류 전체보기 (68)
    • 👨‍🏫ps (44)
      • ❄️프로그래머스 (20)
      • 🔟0️⃣백준 (21)
      • leetcode (3)
    • ✍🏻study (20)
      • 👐java (6)
      • 🍃spring (1)
      • 🥇algorithm (0)
      • 🚘oodp (4)
      • 📒 jpa (3)
      • 👣DB (2)
      • 🌂네트워크 (0)
      • 🎸기타 (3)
      • 👊 kotlin (1)
      • 🫥 jvm (0)
    • 📽project (4)
      • 🎀ReBoN (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
peacekim
👨‍🏫ps/❄️프로그래머스

[프로그래머스] 무인도 여행 [python]

[프로그래머스] 무인도 여행 [python]
👨‍🏫ps/❄️프로그래머스

[프로그래머스] 무인도 여행 [python]

2023. 4. 2. 21:15
반응형

문제

간단한 BFS 문제였다. X가 아닌 지점에서 BFS를 돌리고, 방문 여부를 체크한 후, X가 아닌 곧 중에 방문하지 않은 곳에서 또 다시 BFS를 돌리면 된다.

코드

def solution(maps):
    answer = []
    visited = [[False] * len(maps[i]) for i in range(len(maps))]
    for i in range(len(maps)):
        for j in range(len(maps[i])):
            if visited[i][j] == False and maps[i][j] != "X":
                answer.append(bfs(visited,i,j,maps))
    if len(answer) == 0:
        answer.append(-1)
    answer.sort()
    return answer

def bfs(visited, i,j, maps):
    mX = [0,1,-1,0]
    mY = [1,0,0,-1]
    queue = [[i,j]]
    visited[i][j] = True
    cnt = 0
    while queue:
        
        x, y = queue.pop(-1)
        cnt += int(maps[x][y])
        for k in range(4):
            nX = x + mX[k]
            nY = y + mY[k]
            if nX < 0 or nX >= len(maps) or nY < 0 or nY >= len(maps[0]) or visited[nX][nY] or maps[nX][nY] == "X":
                continue
            queue.append([nX,nY])
            visited[nX][nY] = True
        
    return cnt
"""
BFS로 구하면 될 듯
"""
반응형

'👨‍🏫ps > ❄️프로그래머스' 카테고리의 다른 글

[프로그래머스] 점 찍기 [python]  (0) 2023.04.24
[프로그래머스] 숫자 카드 나누기 [python]  (0) 2023.04.22
[프로그래머스] 거리두기 확인하기 [python]  (0) 2023.03.29
[프로그래머스] 택배상자 [python]  (0) 2023.03.26
[프로그래머스] 괄호 변환 [python]  (0) 2023.03.25
  • 문제
  • 코드
'👨‍🏫ps/❄️프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 점 찍기 [python]
  • [프로그래머스] 숫자 카드 나누기 [python]
  • [프로그래머스] 거리두기 확인하기 [python]
  • [프로그래머스] 택배상자 [python]
peacekim
peacekim
할 수 있는 것과 할 수 없는 것. github: https://github.com/PyeongGangKim

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.