[백준] 14430: 자원 캐기 (파이썬)

2024. 10. 12. 15:03·코딩테스트/BOJ

📌 문제 조건

오른쪽으로 한 칸, 아래쪽으로 한 칸만 이동할 수 있다.

자원이 있는 지역을 1, 없는 지역을 0이라고 한다.

 

📌 구해야 하는 정답

   로봇이 (1,1)이 (N,M)까지 이동하며서 캘 수 있는 최대 숫자를 구해야 한다. 

📌 풀이 하기

(n, m) 자리에서 캘 수 있는 최대 광석의 갯수는 바로 왼쪽인 (n, m - 1)의 최대 광석의 수와 바로 위인 (n - 1, m)의 최대 광석의 수 중에서 MAX의 값에 본인의 값을 더한 값과 같다고 볼 수 있다.

따라서 dp의 점화식은 아래와 같다.

 D[ i ][ j ] = max(  D[ i - 1 ][ j ],  D[ i ][ j  - 1] ) +  S[ i ][ j ]

 

  • 주의할 부분은 1열과 1행 각각의 D[ i ][ j ] 값은 그 이전의 값이 될 것이다..
    • 예시로 D[0][4] = D[0][3] + S[0][4]가 될 것이고, D[7][0] = D[6][0] + S[7][0] 이 되겠다. 
    • D[K][0] = D[K-1][0] + S[K][0]
    • D[0][K] = D[0][K-1] + S[0][K]
  • 초기값은 D[0][0] = S[0][0] 이다. 

📌 코드 설계하기

import sys
sys.stdin = open('../input.txt')
input = sys.stdin.readline

# 1. INPUT, DP 테이블 초기화하기
N, M = map(int, input().split())
S = []
D = list([0] * M for _ in range(N))
for _ in range(N):
    S.append(list(map(int, input().split())))

for i in range(N):
    for j in range(M):
    	if i == 0 and j == 0:
        	D[0][0] = S[0][0]
        if j == 0 and i >= 1:
            D[i][0] = D[i - 1][0] + S[i][0]
        elif i == 0 and j >= 1:
            D[0][j] = D[0][j - 1] + S[0][j]
        else:
            D[i][j] = max(D[i - 1][j], D[i][j - 1]) + S[i][j]

print(D[N-1][M-1])

 

📌 시도 회차 수정 사항

  • i랑 j랑 바꿔서 써서 에러 찾는데 한참 걸림
  • 이중 for문 밖에 D[0][0] = S[0][0] 초기값 정의해서 이중 for문에서 0,0도 else 문에 함께 처리되었다.

📌 정답 코드

'코딩테스트 > BOJ' 카테고리의 다른 글

[백준] 13567번: 로봇 (구현, 파이썬)  (0) 2024.10.15
[백준] 2096: 내려가기 (DP, 파이썬)  (0) 2024.10.14
[백준] 10026: 적록색약  (0) 2024.10.10
[백준]27737번: 버섯농장  (0) 2024.10.10
[백준] 1326: 폴짝폴짝 (파이썬)  (0) 2024.10.07
'코딩테스트/BOJ' 카테고리의 다른 글
  • [백준] 13567번: 로봇 (구현, 파이썬)
  • [백준] 2096: 내려가기 (DP, 파이썬)
  • [백준] 10026: 적록색약
  • [백준]27737번: 버섯농장
뚱이, not a starfish
뚱이, not a starfish
M.S. Student,. Mainly interested in computer vision and autonomous cars
  • 뚱이, not a starfish
    Wilbur-Babo
    뚱이, not a starfish
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • 통신 및 네트워크 (12)
      • Embedded Projects (2)
      • 3D Reconstruction (1)
        • Gaussian Splatting (0)
        • 3D-GS (1)
        • Multi-view Geometry (0)
        • VSLAM (0)
        • Computer Graphics (0)
      • LLM(VLM) (0)
      • AI-Study (28)
        • Mono-Depth (7)
        • Base (2)
        • Computer Vision (1)
        • Image Processing (3)
        • Tiny Object Detection (3)
      • 자율주행 (20)
        • [2023] 1-fifth AA EV (4)
        • [2022] 1-tenth AA EV (2)
        • ROS 1,2 (4)
        • 이론 (7)
        • 실습 (3)
      • Pointcloud (0)
      • sw (16)
        • 정보보안 (1)
        • Android_develop (3)
      • [학부] 전기전자공학 (12)
        • 반도체 (2)
        • 마이크로프로세서 (6)
      • 코딩테스트 (22)
        • BOJ (21)
      • 취준 (21)
        • EVS37 Ambassador (5)
        • 차량 제어 플랫폼 (5)
        • 영어 (3)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    헤네스유아용자동차
    evs37 sdv
    현대차3월신입후기
    현대자동차 연구개발
    evs37sdv
    현대자동차최종면접결과
    현대자동차 자율주행 서류 합격 후기
    자율주행자동차
    tar압축풀기
    현대자동차최종불합
    정렬
    오블완챌린지
    software defined vehicle
    현대자동차 자율주행
    심포지움
    현차 자율주행
    현대자동차 서류합격후기
    자율주행
    현차떨
    자율주행시험
    EVS37
    자율주행작품
    오픽후기
    우분투터미널
    현차 3월 자율주행
    tar 파일
    헤네스
    rc카
    현차 3월 신입 서류
    자율주행경진대회
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
뚱이, not a starfish
[백준] 14430: 자원 캐기 (파이썬)
상단으로

티스토리툴바