inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3-Q

3-Q 질문있습니다 :)

140

한유태

작성한 질문수 79

0

안녕하세요 선생님 🙂

이해가 되지 않는 부분이 있어서 질문 글 올립니다.

 

문제를 보니, 일단 완전탐색과 visited배열의 가중치를 증가시키는 방법이 떠올랐습니다.

 

  1. 완전탐색은 DFS로 구현(BFS는 복잡함)

  2. visited배열의 가중치를 증가시키려면 BFS를 사용

위의 2번 방법은 완탐을 사용하려면 불가능한 방법이기 때문에 함수에 cnt라는 int형 파라미터를 추가하여 풀이를 해보았습니다. 하지만 무언가에 막혀서 선생님 강의를 틀었는데요, 완탐을 사용하시면서 visited배열의 가중치를 증가시키시더라구요. 그동안 배웠던대로라면 이건 불가능한 방법이 아닌가요? 너무 헷갈립니다.. 팁 좀 주시면 감사하겠습니다!!

c++ 코딩-테스트

답변 3

0

99jinjw

안녕하세요 선생님 3주차까지 과정을 마무리하는 과정에 궁금한점이 생겨서 여쭤봅니다

코딩 학습할때 유형별로 풀어보는게 좋다고 들었는데 문제를 보니 백트래킹 문제에 구현, 완탐, DFS,BFS등 여러가지 문제가 섞여있고 그러더라구요. 그래서 백트래킹 유형의 문제를 많이 접해보지 못한게 조금 아쉽습니다 혹시 백트래킹 문제를 조금더 접해보고싶은데 어떤 문제가 좋을지 추천이 가능할까요?


그리고

게임 클라이언트 개발자 준비생인데 혹시 게임개발쪽 C++ 코테 난이도가 어느정도인지 알수 있을까요..? (백준기준)

0

큰돌

안녕하세요 ㅎㅎ

DFS,BFS등 여러가지 문제가 섞여있고 그러더

-> 최대한 코테 환경을 유지하기 위함이에요 ㅎㅎ 일부러 섞어놨어요~ 코테를 볼 때 어 이문제는 bfs구나 하고 드가는게 아니라 bfs인지를 파악하고 -> 드가야 하기 때문이에요


백트래킹 문제를 조금더 접해보고싶은데

-> 코살의 개념심화학습 기반으로 해주세요


게임개발쪽 C++ 코테 난이도

->골드 2 이상이라고 알고 있습니다.


감사합니다.



0

큰돌

안녕하세요 유태님 ㅎㅎ

완탐을 사용하시면서 visited배열의 가중치를 증가시키시더라구요.

>>

		visited[ny][nx] = visited[y][x] + 1; 
		ret += go(ny, nx);
		visited[ny][nx] = 0;

이부분은 모든 경우의 수를 탐색하면서 해당 경우의 수에서의 최단거리를 저장하고 -> 그걸 기반으로 거리가 k인 것을 찾아내기 위함입니다.

  1. visited배열의 가중치를 증가시키려면 BFS를 사용
    >> 그게 아니라 가중치가 같은 그래프내에서 최단거리 -> BFS 사용 이라고 보시면 됩니다. DFS에서도 visited를 증가시킬 수 있습니다.


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

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

감사합니다.


0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

한유태님의 질문에 대해 “DFS와 BFS의 활용 및 선택 기준”에 관한 기존 답변 링크를 추천해드립니다. 질문하신 내용에서 완전탐색(DFS)과 가중치 증가에 따른 BFS 사용에 대한 혼동이 있으신 것 같습니다. 특히, 완탐을 사용하면서 visited 배열의 가중치를 어떻게 증가시킬 수 있는지에 대한 부분이 헷갈리시는 것으로 보입니다.

다음은 관련된 내용을 다루는 기존 답변입니다:

  • 3 - D : 4179 질문있습니다
    • 이 답변에서는 DFS와 BFS의 차이점을 설명하며 특정 문제들(예: 최단거리를 찾는 문제)에서 BFS를 선호하는 이유를 설명합니다. 그러나 가중치가 같은 그래프 내에서 BFS를 최단거리 알고리즘으로 사용할 수 있다는 점에 초점을 두고 있으며, 답변은 DFS로는 문제를 풀기 어려운 이유를 설명하고 있습니다.

질문하신 내용에 대해 직접적으로 해결할 수 있는 답변이나 선생님이 제공하는 구체적인 팁을 명확하게 제공하는 링크를 찾지 못했습니다. 한유태님께서 언급하신 완전탐색과 가중치 증가라는 개념을 함께 사용하면서 생기는 혼란에 대해, 선택한 알고리즘에 따라 접근법과 구현 방식이 달라질 수 있다는 것을 이해하는 것이 중요합니다. 다만, 일반적으로 가중치가 존재하고 최단 경로를 찾아야 하는 경우 BFS가 자주 사용되는 것은 사실입니다. DFS는 경로의 모든 가능성을 탐색하지만, BFS는 시작점에서부터 가까운 노드들을 순차적으로 탐색하기 때문에 레벨(또는 깊이)별로 탐색이 이루어집니다. 이러한 차이점을 기반으로 문제의 성격에 맞춰 적절한 알고리즘을 선택하는 것이 중요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

한유태

아.. 최단거리가 아니라 모든 가능성..

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

0

27

2

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

0

30

2

5-S 테스트 케이스 질문

0

35

2

코살 문제풀이 환경

0

48

2

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

0

43

1

추천 추가문제들

0

43

2

프로그래머스 코테 환경 관련해서 질문드립니다.

0

47

2

해당 문제에 대한 채점이 코딩살구클럽에서 올바르게 처리되지 않습니다.

0

41

2

균형 이진 트리 설명 시 높이 숫자

0

31

2

4-H 질문드립니다.

0

35

2

1-K 질문드립니다.

0

41

2

대기업 인적성 시험 질문

0

41

2

4-C 질문드립니다

0

41

2

[수학숙제 / BOJ 2870] 채점 서버 오작동

0

37

1

코테 준비 질문

0

50

1

살구클럽가입 요청드려요

0

39

2

1-I 문제 질문

0

40

2

코딩살구클럽 가입

0

57

2

AI 코딩 도구 사용 시 학습 방법 조언

0

52

2

코딩살구클럽 오류

0

61

2

코살클 [3-F 괄호 추가하기] 프라이빗 9번 제보

0

46

1

코딩살구클럽 테스트 케이스 오류 제보

0

52

2

삼성 코딩테스트

0

65

2

틀린 이유를 못찾겠습니다

0

48

2