코딍코딍
코딩기록
코딍코딍
전체 방문자
오늘
어제
  • 분류 전체보기 (271)
    • 개발 (2)
    • Java (1)
    • 스프링 (28)
    • JPA (11)
    • Git (3)
    • 알고리즘 (160)
      • 백준 (132)
      • 프로그래머스 (8)
      • SWEA (20)
    • 토이 프로젝트 (14)
      • 간단한 Springboot CRUD (1)
      • 게시판 프로젝트 (13)
    • 알고리즘 개념정리 (8)
    • 오류 해결 (13)
    • 보류 (0)
    • AWS (5)
    • 트러블 슈팅 (0)
    • 회고 (3)
    • CS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

최근 글

티스토리

hELLO · Designed By 정상우.
코딍코딍

코딩기록

알고리즘/백준

1966번 : 프린터 큐

2022. 7. 16. 18:07

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

 

1966번: 프린터 큐

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

www.acmicpc.net

 

 

문제

 

 

코드

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt(); sc.nextLine();
        StringBuilder sb = new StringBuilder();

        for(int i=0;i<t;i++) {
            int n = sc.nextInt(); int m = sc.nextInt();
            sc.nextLine();
            
            int max=0;
            int srr[] = new int[n];
            
            for(int j=0;j<n;j++) {
                srr[j] = sc.nextInt();
                if(srr[j]>max) max=srr[j];
            }
            
            int count=1;
            int index=0;
            while(true) {
                if(srr[index]>=max){
                    if(index==m) break;
                    srr[index]=-1;
                    max = Arrays.stream(srr).max().getAsInt();
                    count++;
                }
                index++;
                index%=n;
            }
            
            sb.append(count+"\n");
        }
        System.out.println(sb);
    }
}

 

 

해결방법

슈도코드

  1. 중요도 입력받으면서 max값 구하기
  2. 무한 loop 시작
    1. 중요도가 max보다 크거나 같은 경우
      1. index가 몇 번째로 인쇄되었는지 궁금한 문서와 같은 위치면 탈출
      2. 같지 않으면 count 증가, 해당 중요도 값 -1로 설정, max 값 재설정
  3. StringBuilder에 count 추가

위의 방법을 테스트 케이스 수 만큼 반복하면 된다.

 

Queue를 써서 풀 수도 있을 것 같았지만 복잡해 질 것 같아서 일반 배열에 넣고 푸는 방법으로 풀었다.

Queue를 써서도 풀어봐야겠다.

'알고리즘 > 백준' 카테고리의 다른 글

1417번 : 국회의원 선거  (0) 2022.07.19
14659번 : 한조서열정리하고옴ㅋㅋ  (0) 2022.07.18
1213번 : 팰린드롬 만들기  (0) 2022.07.15
10814번 : 나이순 정렬  (0) 2022.07.14
11659번 : 구간 합 구하기 4  (0) 2022.07.11
    '알고리즘/백준' 카테고리의 다른 글
    • 1417번 : 국회의원 선거
    • 14659번 : 한조서열정리하고옴ㅋㅋ
    • 1213번 : 팰린드롬 만들기
    • 10814번 : 나이순 정렬
    코딍코딍
    코딍코딍
    ㅎ2

    티스토리툴바