|
안녕하세요 만해입니다.
흐흐 여기에다 글을 적는건 오랜만이네요
방금 동생이 숙제 못한다고 좀 해달라고 되게 징징 그려서
하나 해줬습니다.
여동생도 아닌것이 징징 그려 쩝~
각설 하고요
내용은
이런 것인데요
01
10
012
021
120
...
0123
0132
...
이런식으로 0으로부터 시작해서 하나씩 증가하는 숫자 열 에서
01 이면 01을 제외한 01로 이루어 질수 있는 다른 배열을
012면 012를 제외한 012로 이루어 질수 있는 다른 배열을 쭉 출력 해라는 문제 였는데요
김백일님의 소스를 참고로 해서 만들었는데
이상하게 종료가 바로 안되네요
뭐가 잘못 된건지
고수님들의 조언 부탁 드립니다.
// Example for random_shuffle()
#include<cstdlib>
#include<iostream>
#pragma hdrstop
#include<vector>
#include<iterator>
#include<algorithm>
#include<numeric>
#include<map>
#include<functional>
using namespace std;
int main() {
vector<int> v(3);
vector< vector<int> > Vlist;
iota(v.begin(), v.end(), 0); // 0 1 2 3 4 5 6 7 8 9 10
Vlist.push_back(v);
ostream_iterator<int> out(cout, " ");
for ( vector<int>::iterator i = v.begin()+1 ; i != v.end() ; )
{
i++;
int nCount = 0;
copy(v.begin(), i, out);
cout << endl << endl;
for ( ;nCount != (((*i-1)*2)-1) ; )
{
vector<int> temp;
random_shuffle(v.begin(), i);
temp.assign(v.begin(),i);
vector< vector<int> >::iterator position;
position = find(Vlist.begin(),Vlist.end(),temp);
if ( position == Vlist.end())
{// 같은 값이 존재 하지 않으면
nCount ++;
copy(v.begin(), i, out);
cout << endl;
Vlist.insert(Vlist.begin(), temp);
}
iota(v.begin(), i, 0);
}
cout << endl << endl;
Vlist.clear();
}
return 0;
}
프로그램 수행이 끝나면 도스창이 자동으로 닫혀야 하는데 안 닫히면서
시퓨 사용량은 100이네요
혹시 어디 무한 루프 돈건 아닌가 싶어서 다시 트레이스 해봤는데
그런건 없는데 어디서 망가진건지 모르겠네요
고수님들의 도움 바랍니다.
|