코딩/알고리즘
[백준 알고리즘] 영식이와 친구들(1592번) C++로 풀기
언유상
2020. 5. 13. 20:30
문제 이름 : 영식이와 친구들
문제 번호 : 1592
사용 언어 : C++
문제는 다음과 같다.
시간이 넉넉해서 풀기에 어렵지 않은 문제이다.
베열을 만들어 놓고, 돌아가면서 하나씩 선택하면된다.
각 사람이 몇번 받았는지를 확인하면서 진행하면 된다.
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
32
33
34
35
36
37
38
39
40
41
|
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <utility>
#include <cmath>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int n, m, l, k = 0;
int cnt = 0;
cin >> n >> m >> l;
int* p = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) p[i] = 0; // 배열 초기화
while (1) {
p[k]++;
if (p[k] == m)
break;
else if (p[k] % 2) { // 홀수번 받은 경우
cnt++;
if (k + l < n) // 번호를 넘어가지 않는 경우
k += l;
else // 번호를 넘어가는 경우
k = (k + l) - n;
}
else { // 짝수번 받은 경우
cnt++;
if (k - l >= 0) // 번호를 넘어가지 않는 경우
k -= l;
else // 번호를 넘어가는 경우
k = n + (k - l);
}
}
cout << cnt;
return 0;
}
|
cs |