일단 너가 쓴 코드는 이건데 보면서 같이봐라
64번째 줄에서 해당 좌표에 당근이 있을 경우 dp[i][j]를 1로 바꾸지?
근데 78번째 줄에서 이전 좌표에서 접근이 있었을 경우에만 dp를 새로 고치잖아
이렇게 짜면 당근이 있는 좌표 이전 좌표가 전부 벽일경우 (접근을 못할경우) 당근 좌표의 dp는 1로 그대로 남게 되겠지
글로 쓰니까 이상한데 반례 보면 바로 알듯
Input
3 4
.##O
R#CO
.##O
Output
1
Answer
-1
고치면 통과한다
끝
뭔가 문제가 있는거 알거같아요 집가서 한번 풀어보겠습니다 감사합니다! - dc App
개추
https://pastebin.com/6aFUxpDD
86번줄에 말씀하신대로 고쳤보았습니다. 당근좌표를 바로 초기화 해주지 않고 이전의 경로가 있었을때만 초기화해주는식으로 고쳐서 반례도 맞게 나왔는데 틀렸습니다; 아아아;; 어려버요;;
# #C # 에서 C에서 이전 좌표를 검색한다고 생각해봐 C의 max가 몇이 나올까?
아니머야 반례 제대로 나온다고?
arr배열에는 C 좌표에 1이 나올것이고, dp배열에는 C에 -1입니다 dp의 C의 좌표에는 이전경로가 없기때문에 dp값저장을 안해야 다른곳에서 참조 안하기 때문에 반례 -1 나와요 그리고 dp배열 출력했을때 시작좌표 다음 열부터는 접근자체를 못하니까 dp가 다 -1로 되있어요
야이씨 말한거만 고쳐야지 82번째줄 arr[y][x]==2 이건 왜넣은거야 디질래진짜? 이러면 종료지점을 지나면 탐색안하잖아 ROCO 면 0나온다저거
저거 지우고 if (dp[y][x] == -1)로 바꾸면 통과한다
근데 arr[y][x]==2 넣는이유는 만약 OO 가 있을떄 뒤 O가 앞 O를 참조할까봐 그랫는데 어차피 앞O를 왔을때는 뒤쪽으로 갈일없고 바로 종료라서.. 도와주셔서 감사여;; 죄송 ㅎㅎ
쪽문 도착했을때 바로 종료가아니라 종료해도되고 다음으로 이동해도 되는 말이네요 하..어렵
문제 지문에 그냥 나와있는데 제대로 못읽었네
참조할까봐가 아니라 참조를 해야지 통과해도되는데.. 근데 코드보면 너무 생각을 복잡하게하는거같아 그러면 헷갈려 이거 탑다운 재귀로풀면 몇줄 안쓰고도 푸니까 딴 사람 코드도 봐봐
첨에는 참조하면 안된다고 생각했어요 지문을 제대로 못봐서 따른사람풀이보고 참조해볼게요 감사여 ㅎㅎ
추천 4 머지 ㅋㅋ 노력춘가