STUDY/Algorithm

[백준] 1966 프린터 큐 C

sinawi95 2021. 11. 29. 19:18
728x90

https://www.acmicpc.net/problem/1966

 

1966번: 프린터 큐

여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에

www.acmicpc.net

#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