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

chan990227님의 프로필 이미지
chan990227

작성한 질문수

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

3-B

3-B 질문있습니다.

작성

·

135

0

안녕하세요 큰돌님!!

main 부분 마지막 출력 부분에서 mx에 -1을 하는 이유는 처음 mx에 0을 담아놓기 때문에 그 값을 빼기 위함인가요??

답변 1

1

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

안녕하세요 ㅎㅎ

void bfs(int y, int x){
    memset(visited, 0, sizeof(visited)); 
    visited[y][x] = 1; 

처음에 visited를 1부터 시작하기 때문에 해당 부분을 빼줘야 해서 그렇습니다.

mx = max(mx, visited[ny][nx]);

앞의 코드와 같이 mx = visitied의 가장 최대값이 담기거든요.

 

이 문제는 최단거리이기 때문에 a -> b로 간다고 했을 때 2칸이지만 최단거리는 1이죠?

우리는 2칸으로 계산되게끔 로직을 구축했기 때문에 1을 빼주어야 합니다.

 

 

 

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

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

chan990227님의 프로필 이미지
chan990227

작성한 질문수

질문하기