inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3-E

3-E 뮤탈리스크문제 질문있습니다

384

이선용

작성한 질문수 16

0

http://boj.kr/76d330363fe14462b380a7036a3434f7
문제가 이해가 잘 가지않아 선생님의 코드를 보고 작성하였습니다

여기서 궁금한부분이 bfs일경우일때 visited[][][]3차원 배열에 이미 들어가있는 값이 있으면 continue하는 조건인데 q에들어가는 원소가 추후에 들어오는 visited일 경우 같은 원소의 idx라고 하여도 dfs가 아닌 bfs인 이상 무조건 count되는 레벨의 갯수가 트리나 그래프로 따졌을때 depth 가 깊은 탐색순서가 되기때문에 visited가 원소가 있을때 이후에 들어오는 count는 무조건 기존에들어가있는 vistied의 원소보다 클 것이므로 해당조건만으로 문제를 풀수있는것인가요?

c++ 코딩-테스트

답변 1

0

큰돌

안녕하세요 선용님 ㅎㅎ

여기서 궁금한부분이 bfs일경우일때 visited[][][]3차원 배열에 이미 들어가있는 값이 있으면 continue하는 조건인데 q에들어가는 원소가 추후에 들어오는 visited일 경우 같은 원소의 idx라고 하여도 dfs가 아닌 bfs인 이상 무조건 count되는 레벨의 갯수가 트리나 그래프로 따졌을때 depth 가 깊은 탐색순서가 되기때문에

>> 아니요 bfs는 깊이우선탐색되지 않습니다.

visited가 원소가 있을때 이후에 들어오는 count는 무조건 기존에들어가있는 vistied의 원소보다 클 것이므로 해당조건만으로 문제를 풀수있는것인가요?

>> 네 맞습니다. 일단 visited에는 최단거리 배열만 들어가게 되며 먼저 채워지면 그 다음, 해당 visitied를 한 이후의 정점에서 채워지는 원소는 더 큰값이 들어오게 됩니다.

이렇게 탐색을 하기 때문에 먼저 방문한 정점이 최단거리이고 뻗어나갈수록 더 커진 값이 들어가게 됩니다.

image

			if (visited[na][nb][nc])
				continue;

또한 이 continue부분은 방문한 정점은 다시 방문하지 않는다라는 의미로 BFS라면 그냥 있는 로직입니다. 3차원이라고 해서 달라지지는 않습니다.

 


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

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

감사합니다.

강사 큰돌 올림.


2-T 질문

0

4

0

코딩 살구클럽 가입 문의

0

67

2

코딩살구클럽 가입문의

0

69

2

3-K private case 질문

0

66

2

안녕하세요. 코딩살구클럽 문의드립니다!

0

77

2

7:41 듣다가 질문합니다

0

77

2

코드 리뷰 요청드립니다!

0

83

2

코딩살구클럽 계정 문의

0

79

2

SK하이닉스 대비 강의수강

0

217

3

코딩살구클럽 등록부탁드립니다.

0

78

2

7-F 재귀로 풀시 런타임애러

0

75

1

1-N 문제 질문입니다. (+ 채점오류)

0

82

2

코딩살구클럽 가입 확인 부탁드립니다.

0

86

2

직장인 코테 합격 공부방법 문의

0

127

2

코딩살구클럽 가입 방법

0

96

2

6-H 체점 관련 질문

0

74

1

채점서버 연결 관련 질문입니다

0

101

2

삼성 s직군

0

88

1

삼성 코테 없어짐

0

213

1

코딩살구클럽 가입부탁드립니다

0

87

2

코딩살구클럽 가입 요청 확인부탁드립니다

0

69

2

5-S 테스트 케이스 질문

0

78

2

코살 문제풀이 환경

0

88

2

2 - T 오큰수 문제가 있는 것 같습니다.

0

82

1