일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- usaco
- 넷플릭스
- silver
- 해설
- 코딩 테스트
- 나는솔로
- 카카오
- 추천
- 리뷰
- 알고리즘
- BFS
- kakao
- 완전탐색
- benefits
- Greedy
- 영화
- Movie
- parametric search
- array
- BOJ
- health
- Netflix
- review
- 수능
- Algorithm
- coding
- 영어
- 2020
- 백준
- Recursive
Archives
- Today
- Total
Young
Round Robin 본문
728x90
반응형
이번 문제는 'round robin'(https://www.acmicpc.net/problem/9436) 문제 입니다.
당분간은 '구현' 문제 위주로 업로드를 할 예정입니다.
이 문제가 좋다고 생각하는 이유는 'round robin 알고리즘에 대해서 생각해 볼 수 있고,
언뜻 보면 쉬워보이는데 막상 구현하면 막히는 문제'이기 때문입니다.
저번 LRU Caching 문제와 비슷합니다. list를 사용해서 구현하면 아주 간단히 구현할 수 있습니다.
문제가 영어라서 부담스러울 수 있지만 구현을 연습하기에 좋은 문제입니다.
list에 대해서는 LRU 문제에서 자세히 설명했으니 생략하겠습니다.
1 2 3 4 | list<int> ls; for (int i = 0; i < a; i++) ls.push_back(0); | cs |
우선 이렇게 list를 구성하고
1 2 3 4 5 6 7 8 9 10 11 | int cnt = 0; while (1) { if (it == ls.end()) it = ls.begin(); (*it) += 1; cnt += 1; if (cnt == b) { it = ls.erase(it); break; } it++; } | cs |
이 코드에서 주목해서 봐야할 부분은 3, 7번째 줄 입니다.
마지막에 도달하면 다시 처음으로 되돌리는 부분과 마지막으로 끝나는 부분을 지우고 다음 노드로
넘어가는 부분 입니다.
728x90
반응형
'코딩 테스트 대비 추천 문제' 카테고리의 다른 글
전공책 (0) | 2019.03.12 |
---|---|
문자 메시지 (0) | 2019.03.11 |
LRU Caching (0) | 2019.03.10 |
개미 (0) | 2019.03.09 |
CPU (0) | 2019.03.09 |