[Python] BOJ / 3109번 / 빵집

2022. 6. 4. 11:37·🥇 Problem Solving/Greedy
 

3109번: 빵집

유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던

www.acmicpc.net


📝 풀이

  • 그래프 탐색을 통해 가스관과 빵집을 연결하는 파이프라인의 최댓값을 구하는 문제
  • 가스관과 빵집을 연결하는 모든 파이프라인은 첫째 열에서 시작해야 하고, 마지막 열에서 끝나야 함.
  • 각 칸은 오른쪽 위 대각선, 오른쪽, 오른쪽 아래 대각선으로 연결할 수 있음
    • (-1, 1), (0, 1), (1, 1)
  • 연결하는 파이프라인은 서로 겹칠 수 없음
    • visited 배열을 통해 구현
  • x축이 (c - 1)열에 도착했다는 것은 파이프라인이 성공적으로 연결되었다는 뜻

💻 소스 코드

import sys

input = sys.stdin.readline
dy = (-1, 0, 1)

def dfs(y, x):
    if x == c - 1:
        return True
    
    for i in range(3):
        ny = y + dy[i]
        nx = x + 1

        if not 0 <= ny < r or nx >= c or graph[ny][nx] == 'x':
            continue
        if not visited[ny][nx]:
            visited[ny][nx] = True
            if dfs(ny, nx):
                return True

    return False

r, c = map(int, input().split())
graph = [list(input().rstrip()) for _ in range(r)]
visited = [[False] * c for _ in range(r)]
ans = 0

for i in range(r):
    if dfs(i, 0):
        ans += 1

print(ans)
저작자표시 (새창열림)

'🥇 Problem Solving > Greedy' 카테고리의 다른 글

[Python] BOJ / 13305번 / 주유소  (0) 2023.04.24
[Python] BOJ / 2812번 / 크게 만들기  (0) 2022.06.29
[Python] BOJ / 1700번 / 멀티탭 스케줄링  (0) 2022.05.25
[Python] BOJ / 11000번 / 강의실 배정  (0) 2022.05.25
[Python] BOJ / 2437번 / 저울  (0) 2022.05.10
'🥇 Problem Solving/Greedy' 카테고리의 다른 글
  • [Python] BOJ / 13305번 / 주유소
  • [Python] BOJ / 2812번 / 크게 만들기
  • [Python] BOJ / 1700번 / 멀티탭 스케줄링
  • [Python] BOJ / 11000번 / 강의실 배정
Baeg-won
Baeg-won
  • Baeg-won
    좋았다면 추억이고 나빴다면 경험이다.
    Baeg-won
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍃 Spring, Spring Boot
        • 스프링 프레임워크 기초
        • 스프링 핵심 원리 - 기본편
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편
        • 스프링 MVC
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리..
      • 🥑 Web Technoloy
      • 🚗 Backend Toy Project
        • 스프링 부트 게시판
        • Photogram
        • Baeg-won Clothing Gallery
      • 🥇 Problem Solving
        • Breadth-First Search
        • Depth-First Search
        • Backtracking
        • Simulation
        • Two-pointer
        • Binary Search
        • Greedy
        • Dynamic Programming
        • Minimum Spanning Tree
        • Dijkstra
        • Floyd warshall
      • ☕ Java
        • 명품 자바 에센셜
        • Applications
      • 🍦 JavaScript
        • JavaScript 기초
      • 🐧 Linux
        • 이것이 리눅스다(CentOS 8)
      • 📟 Database
        • 혼자 공부하는 SQL
      • 🧬 Data Structure
      • 🎬 HTML
      • 🎤 Tech Interview
      • 📌 etc
        • Unity 2D Raising Jelly Game
        • C++
        • 영어 쉐도잉
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Baeg-won
[Python] BOJ / 3109번 / 빵집
상단으로

티스토리툴바