Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 강좌
- unalias
- 0x
- Call
- cocos2d-x
- 점점변하는값
- 월별 카운트
- SQL
- array
- C++
- application.mk
- Post
- Join
- Avr
- Java
- solution
- is_array
- PORTG
- 단축키
- 현재언어
- 하이퍼 터미널
- function
- 파일존재
- android studio
- mysql
- mathemetica
- Get
- php
- halliday
- selectc
Archives
- Today
- Total
코딩도사의 코드정리
SCV 자원 채취문제 역추적 본문
프로그램 명: scv
제한시간: 1 초
N * N 크기의 맵이 있다. 이 맵에는 미네랄이 군데군데 매장되어 있어서 당신은 SCV 를 이용해 이 미네랄을 채취하려고 한다.
SCV 는 (1,1) 의 위치에서 출발하여 (N,N)까지 이동하는데, 이 SCV 는 고물이라 오른쪽 또는 아래쪽으로 밖에 움직이지 못한다. 이 SCV 는 무한한 양의 미네랄을 가지고 있을 수 있다고 가정하자. 이 SCV 를 이용해서 최대한 많이 미네랄을 얻도록 하는 프로그램을 작성하시오.
입력 방법
- 첫 줄에는 맵의 크기 N ( 3 <= N <= 100)이 주어진다.
- 둘째줄부터는 주어진 지도가 N 줄 만큼 입력된다. (단, 0 은 미네랄 없음, 1 은 미네랄 있음을 의미한다.)
출력 방법
SCV 가 채취할 수 있는 최대 미네랄 양을 출력한다.입출력 예
입력 5 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 출력 6
보면
result[i][j] = arr[i][j] + result[i - 1][j];
이러한 부분이 있는데 그냥 [i][j] 이전에 어디서 왔는가 관점으로 바라보면
i, j 는 i-1, j 으로부터 온건데 저장하기를
pair<int, int>path[102][102]; 로 잡고
path[i][j] = make_pair(i-1, j); 순서대로 넣은 후에
위와 같은 코드로 역으로 출력하면 된다.