반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 정수론
- C++
- 자료구조
- 그리디알고리즘
- Image Classification
- 수학
- 백준
- 프로그래머스연습문제
- 해시를사용한집합과맵
- 프로그래머스
- 큐
- 논문구현
- 구현
- 브루트포스알고리즘
- C언어
- 프로그래머스sql
- 다이나믹프로그래밍
- 정렬
- SQL
- 프로그래머스코딩테스트
- 그리디
- 사칙연산
- 논문리뷰
- 문자열
- 이분탐색
- 소수판정
- MySQL
- C
- 이진탐색
- 백준알고리즘
Archives
- Today
- Total
초보 개발자의 이야기, 릿허브
[C++] 백준 11866번 요세푸스 문제 0 본문
728x90
반응형
1. 문제이해
https://www.acmicpc.net/problem/11866
1번부터 N번까지의 사람이 원을 이루며 앉아있다.
정수 K가 주어질 때, 순서대로 K번째 사람을 제거하며, 남은 사람들로 해당 과정을 반복해나간다.
N명의 사람이 모두 제거될 때까지 해당 과정을 반복할 때, 제거되는 순서를 요세푸스 순열이라고 한다.
N과 K가 주어질 때, 요세푸스 순열을 구하는 것이 목표이다.
2. 문제풀이
이전에 풀이한 백준 1158번 요세푸스 문제와 완전히 동일한 문제이다.
(백준에 동일한 문제가 이름만 살짝 틀리게 올라오다니..🤔)
풀이방법 또한 동일하니, 자세한 풀이방법은 아래 포스팅을 참고하자.
https://beginnerdeveloper-lit.tistory.com/128
3. 소스코드
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector <int> v;
int N, K;
int index;
cin >> N >> K;
for (int i = 1; i <= N; i++) {
v.push_back(i);
}
cout << "<";
index = (K - 1) % N;
while (!v.empty()) {
cout << v[index];
v.erase(v.begin() + index);
index += K - 1;
if (v.empty()) {
break;
}
if (index >= v.size()) {
index = index % v.size();
}
cout << ", ";
}
cout << ">";
return 0;
}
이제와서 보니 해당 문제는 큐를 사용하신 분들이 꽤나 많더라..
큐를 이용해 푸는 방법도 꽤나 간편해보이니, 조만간 한번 풀어봐야겠다.😊
문제에 대한 질문이나 지적은 언제나 감사하게 받고 있습니다.😊
728x90
반응형
'코딩테스트 > 📗 백준 (BOJ)' 카테고리의 다른 글
[C++] 백준 11728번 배열 합치기 (0) | 2022.02.22 |
---|---|
[C++] 백준1292번 쉽게 푸는 문제 (0) | 2022.02.18 |
[C++] 백준 2164번 카드2 (0) | 2022.02.15 |
[C++] 백준 2193번 이친수 (0) | 2022.02.14 |
[C++] 백준 2548번 대표 자연수 (0) | 2022.02.10 |