인프런 커뮤니티 질문&답변
왜 맞는 거죠...?
작성
·
248
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
http://boj.kr/fd61ee1ade9a43cd97f9406175b060c2
안녕하세요 강사님, 이 문제를 처음에는 visited와 temp를 모두 [10][10]으로 하고 풀었더니 틀렸습니다. 그래서 뭔가 range_check에서 틀린 부분이 있을 거 같아 생각을 하다, 그냥 한 번 배열의 범위를 늘려보자고 생각했습니다. 그래서 visited와 temp를 모두 [12][12]로 바꾸니 정답을 받았습니다.
그 후에 왜 정답인지 생각해보는데, 정말 모르겠습니다..
분명 board의 끝부분에서 뭔가 차이가 있을 것 같은데 보이질 않습니다...
알 수 있을까요??
답변 1
0
안녕하세요 wls님 ㅎㅎ 잘 짜셨네요.
다음 코드를 보면 + 1로 참조하고 있죠? 근데 여기서.
만약 0 ~ 9 까지만 해놓으면 +1이 과연 잘 더해질까요? n이 10일 때 이고 j가 9일 때 + 1이라면 10이 되서 10을 참조하게 되거든요.
if (visited[i][j]) {
// 꽃잎이 퍼졌을 경우의 돈 계산
cur_money += board[i][j];
cur_money += board[i - 1][j];
cur_money += board[i + 1][j];그리고 교안에도 이런 내용이 있는데요.
배열의 경우 조금 더 넓게
int a[10004];
예를 들어 10000의 최대범위를 가지는 문제가 있다면 이런식으로 4정도 여유공간을 주는 게 좋습니다. 예를 들어 10000이라면 10000 + 4로 10004로 해야 하는 것이죠. 이를 통해 오버플로에 대한 신경을 덜 쓰게 만듭니다.
이부분만 다시 한번 읽어주세요.
감사합니다.
자세한 답변 감사드립니다! 제가 조금 더 교안을 꼼꼼히 봤어야 했네요..
새로운 교안을 미리 받아 기분이 좋네요 ㅎㅎ
말씀해주신 것 항상 조심하면서 앞으로 남은 수업도 열심히 듣겠습니다.
감사합니다.






제가 wls님을 위해 교안을 좀 더 자세하게 수정했는데요.
이거 아마 이번주 내로 반영될 거에요. ㅎㅎ 미리 공개합니당 이거 참고해주세요~