[백준] 14503번 로봇 청소기- 파이썬

2022. 3. 25. 21:16·코딩/파이썬(python)

https://www.acmicpc.net/problem/14503

 

14503번: 로봇 청소기

로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어

www.acmicpc.net

# 북동남서 이동 설정
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]

def dfs(x, y, d):
    global count
    if room[x][y] == 0:
        room[x][y] = 2
        count += 1
    # 방향에 맞게 이동 시켜준다
    for _ in range(4):
        nd = (d + 3) % 4
        nx = x + dx[nd]
        ny = y + dy[nd]
        if room[nx][ny] == 0:
            dfs(nx, ny, nd)
            return
        d = nd
    nd = (d + 2) % 4
    nx = x + dx[nd]
    ny = y + dy[nd]
    if room[nx][ny] == 1:
        return
    dfs(nx, ny, d)


n, m = map(int, input().split())
r, c, d = map(int, input().split())
room = []

for _ in range(n):
    room.append(list(map(int, input().split())))
count = 0
dfs(r, c, d)
print(count)

이문제 절반은 풀었는데

안풀려서 다른분꺼 참고했다.

역시 코딩 잘하는 사람은 너무 많다

여기서 제일 충격 먹은점

https://chldkato.tistory.com/157

 

백준 14503 로봇 청소기 (파이썬)

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타

chldkato.tistory.com

방향과 함께 진행을 같이 고려하는 법 

항상 그냥 dfs를 풀때는 방향을 고려하는 문제는 본적 없던거 같은데 여기서 찾았다. 

굿

더 실력을 늘리자

반응형

'코딩 > 파이썬(python)' 카테고리의 다른 글

[백준] 13458번 시험 감독 - 파이썬  (0) 2022.03.25
빠르게 입력받기 import sys -파이썬  (0) 2022.02.06
[백준] 11054번 가장 긴 바이토닉 부분 수열 - 파이썬  (0) 2021.08.05
파이썬 가상환경 구성하기  (0) 2021.07.08
filter  (0) 2021.06.09
'코딩/파이썬(python)' 카테고리의 다른 글
  • [백준] 13458번 시험 감독 - 파이썬
  • 빠르게 입력받기 import sys -파이썬
  • [백준] 11054번 가장 긴 바이토닉 부분 수열 - 파이썬
  • 파이썬 가상환경 구성하기
코딩 코딩 코오딩
코딩 코딩 코오딩
  • 코딩 코딩 코오딩
    코딩하는 누누
    코딩 코딩 코오딩
  • 전체
    오늘
    어제
    • 분류 전체보기 (491)
      • 생산성 (2)
        • 인텔리제이 (2)
      • 프로젝트 기록 (14)
        • git (2)
        • spring (3)
        • TestCode (2)
        • spring security (3)
        • 기타 (2)
        • MySQL (0)
        • Cloud (2)
      • 회고 (4)
      • Spring (6)
      • JPA (0)
      • DB (4)
        • MySql (2)
        • Redis (1)
      • Java (7)
        • JSP (1)
      • 잡담 (1)
      • CS (30)
        • 컴퓨팅 사고 (0)
        • 배열 (4)
        • 알고리즘 (8)
        • 메모리 (7)
        • 자료구조 (9)
        • 암호학 (2)
      • opencv (14)
      • AI (56)
        • 머신러닝 (2)
        • 딥러닝 (7)
        • tensorflow (3)
        • 머신러닝(딥러닝) 정리 (21)
        • 강화학습 (7)
        • 논문 읽기 (1)
        • 잡동사니 (1)
        • python AI (13)
        • 선형대수 (1)
        • 확률론 (0)
      • 알고리즘 공부 (177)
        • 그래프 이론 (0)
        • 다익스트라 (4)
        • 위상정렬 (3)
        • 신장트리-크루스칼 알고리즘 (4)
        • 플로이드 워셜 (3)
        • 이진탐색 (9)
        • 백트래킹 (11)
        • 부르드포스 (9)
        • 다이나믹 프로그래밍 (20)
        • BFS & DFS (24)
        • 그리디 (6)
        • 구현 (15)
        • 정렬 (3)
        • 기타 (62)
        • 수학? (1)
      • 코딩 (173)
        • 파이썬(python) (15)
        • c언어 (13)
        • 프로그래머스 lv1 (46)
        • 프로그래머스 lv2 (41)
        • 백준 - c++ (49)
        • Softeer (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    정렬
    이미지처리
    코딩문제
    코딩기초스킬
    n진법 변환
    순차 탐색
    선택정렬
    코딩
    인접행렬
    C언어 기초
    c언어
    왜곡보정
    DFS
    자료구조
    캘리브레이션
    인접리스트
    코딩테스트
    삽입 정렬
    BFS
    코딩기초
    소수찾기
    큐
    다이나믹 프로그래밍
    그리디
    알고리즘
    스택
    에라토슽네스의 체
    if문
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩 코딩 코오딩
[백준] 14503번 로봇 청소기- 파이썬
상단으로

티스토리툴바