이 문제는 자료구조를 잘 이용하는 문제인것 같다는 생각이 든다. 정해진 만큼 이동하고 출력하고 삭제하고, 마지막을 만나면 다시 처음으로가고 하면될 것 같다. 알고리즘은 별로 안어려운데 자료구조를 잘 활용해야할 것 같다. list도 이용해봤고 vector도 이용해봤는데 동적으로 계속 사이즈가 변해서 코드를 작성하기 힘들었다. 그래서 배열을 이용해서 해결하였다. 사용완료된 배열에는 숫자대신 -1를 넣어줌으로써 k를 셀때 제외할 수 있도록 하였다. 현재 인덱스 번호가 배열사이즈를 넘는다면 다시 처음으로 돌아가도록 하였다. #include using namespace std; int main() { int a; cin >> a; int* p = new int[a]; //동적할당 for (int i = 0; i ..