728x90
https://www.acmicpc.net/problem/1966
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int tc, N, M, i, j, cnt, pos;
scanf("%d", &tc);
for (i = 0; i < tc; i++)
{
// initialize
cnt = 0;
int num[10] = { 0, }; // num of objects
scanf("%d %d", &N, &M);
int* arr = (int*)malloc(sizeof(int) * N);
for (j = 0; j < N; j++)
{
scanf("%d", &arr[j]);
num[arr[j]]++;
}
// search desc order
pos = 0;
for (j = 9; j >= 0; j--)
{
while (num[j])
{
while (1)
{
if (arr[pos] == j) {
num[j]--;
arr[pos] = -1;
pos++;
break;
}
pos++;
if (pos >= N) {
pos = 0;
}
}
cnt++;
if (arr[M] == -1) {
break;
}
}
if (arr[M] == -1) {
break;
}
}
printf("%d\n", cnt);
free(arr);
}
return 0;
}
어렵지 않은 큐 문제
연결리스트 사용안하니 더 쉽게 푼듯하다.
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 11444 피보나치수 6 C++ (0) | 2021.12.11 |
---|---|
[백준] 10830 행렬제곱 C++ (0) | 2021.12.10 |
[백준] 18258 큐2 C (0) | 2021.11.29 |
[백준] 1987 알파벳 python(pypy), c (0) | 2021.10.26 |
[백준] 14499 주사위 굴리기 python (0) | 2021.10.17 |