void DFS(void){

int i, x, y;

bool chk[1001] = {};

s.push(S);

while(!s.empty()){

x = s.top(); s.pop();

if(!chk[x]){

printf("%d ", x); chk[x] = 1;

for(i=graph[x].size()-1;i>=0;i--){

y = graph[x][i];

s.push(y);

}

}

}

printf("\n");

}


제가 적은 모든 코드는 https://www.acmicpc.net/source/8979733 여기서 봐주시구.

이렇게 짜면 스텍에 똑같은 수가 들어가는데, 그런 부분이 되게 마음에 안들거든요.

어떻게 고쳐야 할까요?