Deff_Dev

[백준] 1158번 요세푸스 문제 (C++) 본문

코딩테스트/백준

[백준] 1158번 요세푸스 문제 (C++)

Deff_a 2024. 8. 28. 15:23

문제

 

https://www.acmicpc.net/problem/1158


풀이

1~N까지 숫자를 vector에 저장한 뒤, K만큼 뒤에 있는 숫자를 출력/삭제하는 방식으로 문제를 풀이했다.

#include<iostream>
#include<vector>

// https://www.acmicpc.net/problem/1158

using namespace std;

int main() {
	int N, K, sel = 0;
	cin >> N >> K;

	K--;

	vector <int> vec;

	for (int i = 1; i <= N; i++)
		vec.push_back(i);

	cout << "<";
	while (true) {
		sel = (sel + K) % vec.size();
		cout << vec[sel];
		vec.erase(vec.begin() + sel);

		if (vec.empty())
			break;
		else
			cout << ", ";
	}
	cout << ">";
	

	return 0;
}

'코딩테스트 > 백준' 카테고리의 다른 글

[백준] 15686번 치킨 배달 (C++)  (0) 2024.08.29
[백준] 15988번 1, 2, 3 더하기 3 (C++)  (0) 2024.08.28
[백준] 상범 빌딩 (C++)  (0) 2024.08.27
[백준] 경쟁적 전염 (C++)  (0) 2024.08.27
[백준] 2563번 색종이 (C++)  (0) 2024.08.26