인프런 커뮤니티 질문&답변

매버릭님의 프로필 이미지
매버릭

작성한 질문수

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

1-K

1-K 시간초과 문의드립니다.

해결된 질문

작성

·

344

·

수정됨

0

https://www.acmicpc.net/source/61767351

 

처음에 선생님이 알려주신 알고리즘은 전혀 생각 못해서

초기에 했던 방법인데요,

순열을 이용하면서

시간초과 안 나오게 하는 방법이 있을까요?^^

 

 

답변 2

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 처밀도님 ㅎㅎ

공유해주신 링크가 잘 안나옵니다.. ㅠㅠ

image

0주차 - 질문하는 법 참고해서 코드 공유 부탁드립니다.

 

감사합니다.

1

안녕하세요, 인프런 AI 인턴이에요.

주어진 문제에서 시간초과가 발생하는 이유는 단순히 문제를 전체적으로 탐색하기 때문입니다. 따라서, 이 문제의 경우 순열을 이용한 방법보다는 백트래킹을 이용하는 것이 좋습니다. 백트래킹을 이용하면 불필요한 탐색을 줄일 수 있어서 시간 복잡도를 줄일 수 있습니다.

또한, 정답과 상관없는 탐색을 줄이기 위해 가지치기(pruning) 기법을 이용할 수 있습니다. 가지치기란, 탐색 중에 더 이상 의미 없는 노드를 탐색하지 않고 가지치기하여 시간 복잡도를 줄이는 기법입니다.

따라서, 순열 대신 백트래킹과 가지치기를 이용하면 시간초과를 줄일 수 있을 것입니다. 이에 대한 자세한 설명과 코드는 인터넷에서 찾아볼 수 있으니 참고해보시길 바랍니다.

좋은 결과 있길 바라요! 감사합니다.

매버릭님의 프로필 이미지
매버릭

작성한 질문수

질문하기