백준 1937. 욕심쟁이 판다

2024. 10. 24. 17:49·백준

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

import sys
sys.setrecursionlimit(10**6)

def recur(y,x):

    # 한번 계산된 값 재사용
    if dp[y][x] != -1:
        return dp[y][x]

    # 동서남북 탐색
    for dy, dx in [[1,0], [-1,0], [0,1], [0,-1]]:
        ny = y + dy
        nx = x + dx

        # 유효한 범위인지 확인
        if 0 <= ny < n and 0 <= nx < n:
            # 이동하려는 곳이 더 큰 경우
            if arr[y][x] < arr[ny][nx]:
                # 깊게 들어갈수록 +1
                dp[y][x] = max(dp[y][x], recur(ny,nx) + 1) # 이미 다른 경로에서 계산된 값이 있을 수 있으므로 비교해주기

    return dp[y][x] # 해당 위치에서 이동한 칸의 수

n = int(input())
arr = [list(map(int,input().split())) for _ in range(n)]
dp = [[-1]*n for _ in range(n)]

for y in range(n):
    for x in range(n):
        recur(y,x)

print(max(map(max, dp))+1) # 2차원 배열에서 최댓값 찾는 공식
# 첫 방문한 칸도 포함시켜야 하므로 1 더해주기
저작자표시 (새창열림)

'백준' 카테고리의 다른 글

백준 9251. LCS  (0) 2024.10.26
백준 11053. 가장 증가하는 부분 수열  (0) 2024.10.26
백준 14501. 퇴사  (0) 2024.10.23
백준 12865. 평범한 배낭  (0) 2024.10.23
백준 2961. 도영이가 만든 맛있는 음식  (0) 2024.10.20
'백준' 카테고리의 다른 글
  • 백준 9251. LCS
  • 백준 11053. 가장 증가하는 부분 수열
  • 백준 14501. 퇴사
  • 백준 12865. 평범한 배낭
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (383)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅&리팩토링 (6)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    Til
    코딩테스트준비
    99클럽
    개발자취업
    항해99
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 1937. 욕심쟁이 판다
상단으로

티스토리툴바