강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김재훈님의 프로필 이미지
김재훈

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-J

2 - J 문제 질문

해결된 질문

작성

·

375

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요 선생님 제가 문제보고 코드를 작성해보았는데요. 테스트코드는 잘되는데 답은 틀렸다고 나와서요. 뭐가 문제일지 봐주실수 있나요?

링크: http://boj.kr/9313a10fa181423fa26b01023f529172

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ 질문이 있는데요.

            if (s[j] == 'c') b[i][j] = 1;
            a[i][j] = -1; // 왜 a와 b를 나눠서 하나요?
김재훈님의 프로필 이미지
김재훈
질문자

b배열은 시간이 지남에 따라서 기다린 시간을 채크해서 a배열에 넣어주기 위해서 a,b배열 나눠놨습니다.

다시말하자면!

a배열은 결과로 보여지기위해

b배열은 시간 경과에따라서 a배열에 방문되지않은 위치에 숫자를 넣어주기위해서

나눠놨습니다!

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 재훈님 ㅎㅎ

무슨 말씀이신지 이해했습니다.

2가지 정도 틀린점이 있는데요.

i + k로 접근하고 있죠?

그렇다면 배열의 최대크기는 얼마로 해야할까요?

int a[201][201];
int b[201][201];
bool visited[201][201];

이런식으로 해야겠죠?

또한, +=이 아니라 =이 맞는 표현아닐까요?

                if (!visited[i][j + k] && b[i][j]) {
                    a[i][j + k] = b[i][j] + k - 1;

제가 좀 수정해봤는데 참고 부탁드립니다.

http://boj.kr/c4b83903ebff45bcb8ad580e7cfad000

또 질문 있으시면 언제든지 질문 부탁드립니다.

감사합니다.

강사 큰돌 올림.

김재훈님의 프로필 이미지
김재훈

작성한 질문수

질문하기