inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

5-H

5-H 질문

169

이명운

작성한 질문수 28

0

안녕하세요 큰돌님 문제를 다시 풀어보다가 의문이 생겨서 질문 드립니다.

우선 저는 해당 인덱스를 확인해보며 해당인덱스까지의 경우의 수를 확인해보고 해당 루프마다 ret에 경우의수를 더해주는 방식으로 문제를 풀었습니다

근데 제 풀이의 경우 visited배열을 방문해제할때 for문으로 확인하는 방식이라 시간복잡도가 O(N^2) 일거라 생각하고 당연히 틀렸겠지 하고 그냥 제출해봤는데 맞아서 의문입니다.
왜 맞은걸까요?

고민을 해봤는데 이해가 잘 안되서 질문드립니다.

감사합니다
http://boj.kr/329316d089c24e2896b8062b2a367efb

c++ 코딩-테스트

답변 2

1

큰돌

안녕하세요 명운님 ㅎㅎ

코드가 너무 좋네요 ㅎㅎ

저도 처음에 이코드보고 O(N)인데 통과하려나 했던 코드인데 제 생각에는 아마 이부분 때문에 통과하는 것 같습니다.

            ll c = find(v.begin(), v.end(), n) - v.begin();
            for (ll i = 0; i < c; i++) visited[v[i]] = 0;
            v.erase(v.begin(), v.begin() + c + 1);

계속해서 v에서 필요없는 부분을 지워주고 있기 때문에 해당 부분이 private TC에서 효율적으로 작동되어서 그런 것 같습니다.
그러나 이부분은 O(N)이 맞기 때문에 (find 때문에) 제 코드 기반 다른 방법도 숙지를 해두셔야 합니다.

 

간만에 보는 깔끔한 코드네요 ㅎㅎ

 

감사합니다.



0

이명운

감사합니다.! 좀더 시간복잡도 생각해보며 다양한 풀이방법으로 접근해보겠습니다.

항상 좋은 코드 감사합니다

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 이명운님.

이명운님께서 사용하신 방식이 의도치 않게 주어진 입력 데이터의 특성이나 제한 조건과 잘 맞아떨어져 제출 시 정답으로 처리된 경우가 많은 알고리즘 문제 풀이에서 발생하곤 합니다.

문제 해결 시 왜 정답으로 처리되었는지 분석

  1. 최악의 상황이 발생하지 않음: 백준과 같은 알고리즘 평가 사이트에서는 모든 가능한 입력이 주어지지 않는 한, 최악의 시간복잡도를 직접적으로 경험하는 경우는 드뭅니다. 따라서 O(N^2)과 같은 시간복잡도 알고리즘이 실제로 실행되는 도중 시간 제한을 통과할 수 있습니다.

  2. 데이터의 특성: 주어진 문제 데이터가 특정 패턴을 가지고 있어서 생각보다 많은 부분이 효율적으로 처리되었을 가능성도 있습니다. 데이터의 특성이 특정 알고리즘의 비효율적인 부분을 피할 수 있습니다.

  3. 부분적으로 효율적인 구현: ‘visiting’을 해제하는 부분을 포함해서 알고리즘의 나머지 부분이 평균 케이스에서는 매우 효율적으로 작동할 수 있습니다.

시간복잡도를 보다 정확히 개선할 수 있도록 ‘슬라이딩 윈도우’, ‘투 포인터’와 같은 방법론적 접근을 통해 해당 문제를 한 번 더 살펴보시면 좋은 연습이 될 것 같습니다.

아래 링크를 통해 보다 최적화된 방법을 찾아보길 추천드려요: 5-H 문제 최적화 풀이

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

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

0

14

2

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

0

19

2

5-S 테스트 케이스 질문

0

29

2

코살 문제풀이 환경

0

44

2

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

0

41

1

추천 추가문제들

0

40

2

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

0

42

2

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

0

38

2

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

0

29

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

38

2

1-I 문제 질문

0

39

2

코딩살구클럽 가입

0

57

2

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

0

51

2

코딩살구클럽 오류

0

60

2

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

0

46

1

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

0

52

2

삼성 코딩테스트

0

61

2

틀린 이유를 못찾겠습니다

0

47

2