testtest4   4년 전

이 문제는 주어진 n의 최대 크기가 20이라 그렇게 크지 않다고 생각했습니다

또한 자료형 set을 사용해 중복되는 값도 제거되어 dfs로 풀 수 있다고 생각했는데 시간 초과가 뜨네요

제 코드를 뭔가 고칠만한게 있을까요? 

한번만 읽어주시고 힌트를 주시면 감사하겠습니다!

miles94   4년 전

set 을 통해 그동안 쌓인 sum 값들을 

처음 부터 비교하면서 있는지 없는지 추가하는 내부 알고리즘에 의해

시간초과가 걸리는 것 같습니다.

set 을 사용하지마시고, 최대 50*20+1 의 크기를 갖는 boolean check array 를 만드셔서

dfs 종료 조건에 check array  의 값이 false 이면  true로 바꾸면서 cnt 증가시키는 방식으로

구현하시면 될 것 입니다.

댓글을 작성하려면 로그인해야 합니다.