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
- 큐
- 대수경
- baekjoon problem solving
- baekjoon
- 실버 4
- 전국 대학생 수학 경시대회
- 로보틱스
- std::sort
- BOJ
- 문자열
- mit
- lqr
- 6.042j
- 로봇공학
- LeggedRobot
- mathematics for computer science
- 실버 5
- 텔레스코픽로봇
- 다리로봇
- 최적제어
- 집합과 맵
- 백준
- 정렬
- MIT opencourse
- HJB방정식
- 논문리뷰
- C++
- 구현
- 수학
- 자료구조
Archives
- Today
- Total
서두르지 말고 쉬지 말자
백준 11866번 요세푸스 문제 0 (C++) 본문
문재 티어: 실버 4
문제 유형: 구현, 자료구조, 큐
문제 해결 소감: 그냥 배열써서 풀어도 풀긴했을 거 같은데 큐를 쓰니까 풀이가 더 간단해졌다. 이래서 자료구조를 사용하나 보다.
문제 해결 전략: k번째보다 앞에 있는 값들은 push()한후 pop()으로 없애준다. 그 후 정답으로 제출할 vector에 넣고 큐 안에서 pop한다. 이를 반복한다.
#include <iostream>
#include <queue>
#include <vector>
int n, k;
std::queue<int> q;
std::vector<int> ans;
int main(void) {
std::cin >> n >> k;
for (int i = 1; i <= n; i++) {
q.push(i);
}
for (int i = 0; i < n; i++) {
for (int l = 0; l < k - 1; l++) {
q.push(q.front());
q.pop();
}
ans.push_back(q.front());
q.pop();
}
std::cout << '<';
for (int i = 0; i < ans.size() - 1; i++) {
std::cout << ans[i] << ", ";
}
std::cout << ans[ans.size() - 1];
std::cout << '>';
}반응형
'코딩 공부 > Baekjoon Problem Solving' 카테고리의 다른 글
| 백준 11650번 좌표 정렬하기 (C++) (2) | 2025.07.14 |
|---|---|
| 백준 1978번 소수 찾기 (C++) (1) | 2025.07.14 |
| 백준 15829번 Hashing (C++) (0) | 2025.07.07 |
| 백준 9012번 괄호 (C++) (1) | 2025.07.05 |
| 백준 1676번 팩토리얼 0의 개수(C++) (0) | 2025.04.26 |
