72.공주 구하기

강지훈·2021년 12월 13일
0

예를 들어 총 8명의 왕자가 있고, 3을 외친 왕자가 제외된다고 하자. 처음에는 3번 왕자가 3
을 외쳐 제외된다. 이어 6, 1, 5, 2, 8, 4번 왕자가 차례대로 제외되고 마지막까지 남게 된 7
번 왕자에게 공주를 구하러갑니다.
N과 K가 주어질 때 공주를 구하러 갈 왕자의 번호를 출력하는 프로그램을 작성하시오.
▣ 입력설명
첫 줄에 자연수 N(5<=N<=1,000)과 K(2<=K<=9)가 주어진다.
▣ 출력설명
첫 줄에 마지막 남은 왕자의 번호를 출력합니다.
▣ 입력예제 1
8 3
▣ 출력예제 1
7

#include
#include
#include
using namespace std;

int main() {
int n,k,i; //왕자 수 , 카운트 수
queueQ;
cin>>n>>k;
for(i=1;i<=n;i++){
Q.push(i); // 왕자 큐에 넣기
}

while(!Q.empty()){
	for(i=1;i<k;i++){ // k가 3일때 1,2 외친 왕자는 큐 뒤로 push 
		Q.push(Q.front()); //그리고 팝 
		Q.pop();
	}
	Q.pop(); // k는 3을 외친 왕자는 그냥 pop 
	if(Q.size()==1){
		cout<<Q.front();
		Q.pop();
	}
} 

return 0;

}

profile
never stop

0개의 댓글