if (dep == M) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < arr.Length; i++) { sb.Append(arr[i] + " "); } Console.WriteLine(sb.ToString()); return; }
이걸 dep == M 일때마다 하고 있는데, dep == M인 경우가 출력의 한 줄마다 발생하니 Console.WriteLine()을 엄청나게 사용하고 있습니다.
StringBuilder를 매번 초기화하니 사용하는 의미가 딱히 없기도 하고요.
위 코드를 아래처럼 고친 다음,
if (dep == M) { for (int i = 0; i < arr.Length; i++) { sb.Append(arr[i] + " "); } sb.AppendLine(); return; }
StringBuilder를 static으로 하고, DFS(0) 이후 Console.WriteLine(sb.ToString()); 을 시켜서 그동안 쌓아놓은 문자들을 한번에 출력하니 맞았습니다.
hexaxial 3년 전
(1)번 문제에서 WriteLine 사용할시 시간초과가 나와가지고 StringBuilder로 풀고잇었는데
(3)번 문제에서 Builder를 사용해도 시간초과가 나타나서 질문좀 올려보았습니다.
문제는 맞게 푼거같은데 메모리라던가 시간사용이 예측이 좀 안되네요// ㅠㅠ