inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3-G 와 테스트케이스 팁

3-G 질문있습니다.

262

최은정 ◡̎

작성한 질문수 14

0

https://www.acmicpc.net/source/74183426 정말 단순하게, 한칸 이동 혹은 2배 이동으로 뻗어나가는 재귀를 구현하였습니다.테스트 케이스는 통과했는데 시간초과가 나네요..이게 맞기는 한 코드인지 판단이 안되어 질문 남깁니다.로직이 맞는 지 한 번 검토 부탁드리겠습니다..

c++ 코딩-테스트

답변 1

0

큰돌

안녕하세요 은정님 ㅎㅎ

일단은 이 문제는 최단거리를 구하는 문제 + 경우의 수를 구하는 문제입니다.

이를 처음에 재귀 - dfs로 하는 생각자체는 괜찮습니다.

경우의 수는 모름지기 그렇게 재귀로 +해가면서 해야하거든요 ㅎㅎ

다만.. 이렇게 되면 최단거리를 구할 수는 있으나 너무나도 많은 시간이 걸리게 됩니다.

예를 들어

image

파랑색 정점을 통해 최단거리를 구했는데도.

다시 빨간생 정점들을 다시 탐색해야 합니다.

    if (s == e)
    {
        if(mnMove == cnt)
            mnCnt++;
        mnMove = min(cnt, mnMove); // 도착점에 도착했을 때 이동 횟수를 갱신
                          // 도착점에 도착한 경우 카운트
        return mnMove-1;             // 이동 횟수 반환
    }

도착 지점에서 mnMove 값 생성

 

그 후.

        cnt++;                       // 이동 횟수 증가
        int ret = solve(ns, e);      // 재귀 호출
        minMove = min(ret, minMove); // 현재 위치에서의 최소 이동 횟수 갱신
        cnt--;  

다시 탐색해 나가면서 minmove인지를 확인.

이렇게 다시 탐색해나가는 것이죠.

 

이 때문에 시간초과가 뜨는 것 같습니다.

 

참고 :

그러나 최단거리를 탐색하는 것은 무조건 깊이우선이 느릴까요?

이 경우는. 느립니다.

image

만약 bfs로 하게 되면 2번만에 찾을 것을 dfs는 여러번 탐색하게 되는 것이죠. 그러나 만약 저 파랑 정점 끝이 답이라면? bfs가 더 효율적이지 않게 됩니다.

참고 삼아 알아두시면 좋습니다. ㅎㅎ



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

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

감사합니다.

강사 큰돌 올림.


코딩살구클럽 입장이 안됩니다

0

12

1

4-F 경우의 수 질문입니다.

0

26

2

코딩살구클럽 가입이 안됩니다.

0

52

2

살구 클럽에 대한 질문있습ㄴ디ㅏ

0

40

1

교안 158페이지 문의드립니다

0

37

2

코딩살구클럽 관련 건의사항

0

98

1

코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다

0

40

1

진행 방법 질문드립니다!

0

72

2

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

61

2

2주차 개념#12 트리 순회

0

32

2

백준사이트가 종료된다고 합니다.

0

301

2

백준 서비스 종료

9

919

1

sk 하이닉스 코테 대비

0

378

2

3-G 최댓값 질문

0

52

1

모듈러 연산 값이 10이 아닌 경우도 있지 않나요?

0

84

2

3-I 코드 질문드립니다.

0

63

2

3-N 질문 있습니다.

0

68

2

학습방법

0

104

2

4-H 질문 있습니다 (코드 리뷰)

0

67

2

코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.

0

178

2

2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.

0

70

2

2주차 개념 #4-2. 인접행렬 질문있습니다.

0

65

2

1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.

0

52

2

조합 재귀 풀이 확인 해주시면 감사하겠습니다.

0

70

2