swdream   5년 전

아래 코드에 문제 input 넣고 돌리면 output으로 아래와 같이 나옵니다.

7->6 순으로 나오는거나, 5 ->5로 같은 숫자가 연달아 나오는 케이스를 어떻게 없앨까요?? 

그걸 막기 위해 아래코드 19~20번째 줄에 재귀함수를 실행할때마다 만약 출력을 할 u 벡터가 비어있지 않다면, 처음 인덱스로 u의 사이즈 만큼 넣어서 for문을 u의 사이즈부터 돌리면 그 다음 숫자부터 채울수 있을거라고 생각했는데, 아니네요..1 2 3 4 5 6 

1 2 3 4 5 7 

1 2 3 4 6 6 

1 2 3 4 6 7 

1 2 3 4 7 6 

1 2 3 4 7 7 

1 2 3 5 5 6 

djm03178   5년 전

v에 10개의 수가 있고 이 중 0, 2, 4번째의 수가 u에 들어가있다고 해봅시다. u.size() 는 3이죠. 그러면 그 다음에 v[3]을 또 가져와서 u에 추가하면 될까요?

이런 문제를 해결하는 방법은, 재귀 호출 시에 "v의 몇 번째 원소까지를 사용했는가?"를 인자로 같이 넣어주면 됩니다.

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