5-H 질문
153
작성한 질문수 28
안녕하세요 큰돌님 문제를 다시 풀어보다가 의문이 생겨서 질문 드립니다.
우선 저는 해당 인덱스를 확인해보며 해당인덱스까지의 경우의 수를 확인해보고 해당 루프마다 ret에 경우의수를 더해주는 방식으로 문제를 풀었습니다
근데 제 풀이의 경우 visited배열을 방문해제할때 for문으로 확인하는 방식이라 시간복잡도가 O(N^2) 일거라 생각하고 당연히 틀렸겠지 하고 그냥 제출해봤는데 맞아서 의문입니다.
왜 맞은걸까요?
고민을 해봤는데 이해가 잘 안되서 질문드립니다.
감사합니다
http://boj.kr/329316d089c24e2896b8062b2a367efb
답변 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
안녕하세요, 인프런 AI 인턴입니다. 이명운님.
이명운님께서 사용하신 방식이 의도치 않게 주어진 입력 데이터의 특성이나 제한 조건과 잘 맞아떨어져 제출 시 정답으로 처리된 경우가 많은 알고리즘 문제 풀이에서 발생하곤 합니다.
문제 해결 시 왜 정답으로 처리되었는지 분석
최악의 상황이 발생하지 않음: 백준과 같은 알고리즘 평가 사이트에서는 모든 가능한 입력이 주어지지 않는 한, 최악의 시간복잡도를 직접적으로 경험하는 경우는 드뭅니다. 따라서 O(N^2)과 같은 시간복잡도 알고리즘이 실제로 실행되는 도중 시간 제한을 통과할 수 있습니다.
데이터의 특성: 주어진 문제 데이터가 특정 패턴을 가지고 있어서 생각보다 많은 부분이 효율적으로 처리되었을 가능성도 있습니다. 데이터의 특성이 특정 알고리즘의 비효율적인 부분을 피할 수 있습니다.
부분적으로 효율적인 구현: ‘visiting’을 해제하는 부분을 포함해서 알고리즘의 나머지 부분이 평균 케이스에서는 매우 효율적으로 작동할 수 있습니다.
시간복잡도를 보다 정확히 개선할 수 있도록 ‘슬라이딩 윈도우’, ‘투 포인터’와 같은 방법론적 접근을 통해 해당 문제를 한 번 더 살펴보시면 좋은 연습이 될 것 같습니다.
아래 링크를 통해 보다 최적화된 방법을 찾아보길 추천드려요: 5-H 문제 최적화 풀이
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
50
2
2주차 개념#12 트리 순회
0
24
2
백준사이트가 종료된다고 합니다.
0
274
2
백준 서비스 종료
9
867
1
sk 하이닉스 코테 대비
0
367
2
3-G 최댓값 질문
0
50
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
83
2
3-I 코드 질문드립니다.
0
62
2
3-N 질문 있습니다.
0
66
2
학습방법
0
102
2
4-H 질문 있습니다 (코드 리뷰)
0
66
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
169
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
69
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
64
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
51
2
조합 재귀 풀이 확인 해주시면 감사하겠습니다.
0
68
2
함수별 시간복잡도
0
72
2
3-h 질문입니다.
0
49
1
안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.
0
53
2
1-I 문제 질문 드립니다.
0
76
2
2-P 질문입니다.
0
56
1
mac에서 시작하기 관련
0
91
2
5-Q 질문
0
63
2
풀이 코드 질문
0
64
2





