[11048] 이동하기, c++

2021. 2. 7. 00:18·DEV/PS

[11048] 이동하기

 

www.acmicpc.net/problem/11048

 

11048번: 이동하기

준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는

www.acmicpc.net

한줄 후기 : ㅋㅋㅋㅋdp 극혐

 

포인트는 대각선은 사실 생각할 필요가 없다는 것

대각선으로 갈 바엔 가로 한번 세로 한번 가는게 더 이득임 캔디를 더 많이 모을 수 있으니까

#include <iostream>
using namespace std;
int miro[1001][1001];
int dp[1001][1001];
int main(){
	int n, m;
	cin >> n >> m;
	for(int i=1; i<=n; i++){
		for(int j=1; j<=m; j++){
			scanf("%d", &miro[i][j]);
			dp[i][j] = 0;
		}
	}

	for(int i=1; i<=n; i++){
		for(int j=1; j<=m; j++){
			dp[i][j] += max(dp[i-1][j], dp[i][j-1]);
			dp[i][j] += miro[i][j];
		}
	}
	cout << dp[n][m];
}

사실 처음에 이것도 재귀로 풀어야 하나 고민했는데 답이 안나오더라 그래서 그냥 반복문으로 풀었음.

재귀로 풀 수 있을지도?

dp[i][j] => 인덱스 i,j 에서 가질 수 있는 캔디 개수

문제에서 (r,c) -> (r+1,c) (r,c+1), (r+1,c+1) 이라 했는데 대각선 제외 하면 (r+1,c), (r,c+1) 만 비교하면 된다.

dp 배열을 이차원으로 만들어 준다.

처음에 생각 없이 dp[i+1][j], dp[i][j+1] 했는데 생각해보니 왔던 경로의 사탕을 저장해야하는데 저러고 있었음.

결과적으로 (r+1,c) (r,c+1) 이라는건 현재 입장에서 봤을 때 (r-1,c), (r,c-1) 을 지나 온 것이므로 그 사탕의 개수 중 최대 값을 더해주면 된다.

이때 dp값만 더하면 안되고, miro[][] 에 있는 현재 위치 캔디 수도 더해주자.

​

저작자표시 (새창열림)

'DEV > PS' 카테고리의 다른 글

[1520] 내리막 길, c++  (0) 2021.02.07
[14501] 퇴사, c++  (0) 2021.02.07
[2156] 포도주 시식, c++  (0) 2021.02.07
[2579] 계단 오르기, c++  (0) 2021.02.07
[11403] 경로 찾기, c++  (0) 2021.02.07
'DEV/PS' 카테고리의 다른 글
  • [1520] 내리막 길, c++
  • [14501] 퇴사, c++
  • [2156] 포도주 시식, c++
  • [2579] 계단 오르기, c++
jobchae
jobchae
말하는 감자지만, 코드를 끄적이는 Node.js 백엔드 개발자입니다.
  • jobchae
    JOBCHAE
    jobchae
  • 전체
    오늘
    어제
    • 🚀 JOBCHAE (182)
      • DEV (151)
        • PS (108)
        • Node.js (12)
        • React (3)
        • docker (1)
        • 잡다한 개발 일지 (21)
        • injection (1)
        • JS, TS (3)
        • DB (2)
      • 축구 (0)
      • 일상 (19)
      • 영화 (3)
      • 음악 (8)
  • 블로그 메뉴

    • 💻 Github
    • 🙋🏻 Linkedin
    • 📖 방명록
  • 링크

    • PS Github
  • 공지사항

  • 인기 글

  • 태그

    리액트
    GitHub
    슬랙
    node.js
    DP
    우선순위큐
    SOPT
    솝트
    nodejs
    PS
    일상
    회고
    알고리즘
    react
    위상정렬
    boj
    백준
    이분탐색
    mongoDB
    렛츠락페스티벌
    슬랙봇
    Express
    앱잼
    Nest.js
    JavaScript
    개발
    DFS
    db
    typescript
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jobchae
[11048] 이동하기, c++
상단으로

티스토리툴바