PS/Baekjoon Online Judge

[백준 1966] 프린터 큐 [C]

kimyoungrok 2021. 7. 28. 13:42
728x90

백준 - 1966


풀이

우선 Test Case를 입력받아 Queue에 저장하고, 최댓값을 찾았을 때의 index가 입력받은 M과 일치하기 전까지 최댓값을 제거하고, cnt를 증가시켜주는 방식으로 풀이했다.


소스코드

#include <stdio.h>
int main(){
    int T, N, M;
    scanf("%d", &T);
    while (T--){
        scanf("%d %d", &N, &M);
        int queue[N], idx = 0, cnt = 1;
        for (int i = 0; i < N; i++)
            scanf("%d", &queue[i]);

        while (1){
            int max = 0;
            for (int j = 0; j < N; j++)
                max < queue[j] && (max = queue[j]);
            while (queue[idx] != max) idx = (idx+1) % N;
            if (idx == M) break;
            
            cnt++;
            queue[idx] = -1;
        }
        printf("%d\n", cnt);
    }
}

출처

 

1966번: 프린터 큐

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

www.acmicpc.net

728x90

'PS > Baekjoon Online Judge' 카테고리의 다른 글

[백준 01016] 제곱 ㄴㄴ 수 [C]  (0) 2021.07.29
[백준 2108] 통계학 [C]  (0) 2021.07.28
[백준 1904] 01타일 [C]  (0) 2021.07.28
[백준 1929] 소수 구하기 [C]  (0) 2021.07.28
[백준 1874] 스택 수열 [C]  (0) 2021.07.28