# 1966

11개의 포스트

[Baekjoon] 1966 - 프린터 큐

[백준] 1966- 프린터 큐 문제 링크: https://www.acmicpc.net/problem/1966 코드 풀이 첫번째 while문은 복수의 test cases를 고려하기 위함이다. 두번째 while문이 풀이의 핵심인데 살펴보면 다음과 같다. 중요도(impts)가 queue에 들어가 있다. queue의 가장 앞쪽(가장 왼쪽)의 중요도 값이 queue에 들어있는 전체 중요도 값들 중 최댓값이 아니라면 queue의 가장 앞의 값을 가장 뒤로 보낸다. 나머지 값들은 하나씩 앞으로 당겨진다. 이것을 deque의 rotate()를 사용해 구현한다. 처음에 언제 출력되는지 알고 싶은 문서의 위치를 idx로 받았으므로 idx도 매번 변경해준다. 만약 현재 queue의 가장 앞의 값이 queue 전체의 최댓값이라면 while문이 종료된다. 이때 만약 idx가 0이라면, 즉 현재 가장 앞의 값이 최댓값이면서 출력 순서를 알고자 하는 문서라면 `c

2023년 7월 1일
·
0개의 댓글
·

파이썬으로 알고리즘 연습 블로그에 정리하자

탐욕알고리즘 boj 2920 boj 2798 boj 1874 boj 1966 boj 5397 boj 1920 boj 4195

2023년 6월 19일
·
0개의 댓글
·
post-thumbnail

[백준] 1966

https://www.acmicpc.net/problem/1966 📔문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2 1 4 3 라면 C를 인쇄하고, 다음으로 D를 인쇄하고 A, B를 인쇄하게 된다. 여러분이

2023년 5월 16일
·
0개의 댓글
·

[SW Expert Academy] - 1966 숫자를 정렬하자 JAVA

문제 링크 테스트 케이스가 50보다 작아서 버블정렬을 사용해도 되지만 그냥 Arrays.sort() 사용해서 풀었다. > ### 수도코드] T(테스트 케이스 수) for(tc : 1 ~ T){ N(해당 테스트 케이스의 숫자 개수) A[N] 선언 for( i : 0 ~ N ) { A[]에 숫자 넣어주기 } A[] 정렬 for( k : 0 ~ N ) { A[] 출력 }

2023년 5월 7일
·
0개의 댓글
·
post-thumbnail

백준_1966번

1966번 프린터 큐 출력 대기중인 문서들이 있고 문서들 마다 중요도가 있다. 제일 높은 중요도인 문서부터 출력하고 출력하려는 문서가 제일 높은 중요도가 아니면 대기열의 맨 뒤로 보낸다. 테스트케이스들이 주어지고 출력하려는 문서가 몇 개 인지와 몇 번째로 인쇄 되는지 궁금한 타겟 문서의 현재 위치 그리고 문서들의 중요도가 주어진다. 타겟 문서가 몇번째로 인쇄 되는지 출력하는 문제.

2023년 2월 27일
·
0개의 댓글
·
post-thumbnail

백준 1966 프린트 큐

내 풀이 pq에 밀어 넣을 때 cmp때문에 pair의 first값과 second값이 무조건 내림차순으로 정렬되면서 들어갈줄 알았는데 안들어가진다... 이유를 모르겠음.. 밑에 코드는 안풀려서 다른 사람 코드 분석해서 작성한 부분 핵심은 while안에서 pq.top하고나서 _count++후에 idx값과 k의 값이 같은지보고 다르다면 뽑았던 부분 다시 q에다가 pair로 만들어서 넣어준다. 그러면 queue의 제일 위에 쌓이게 되고 하나하나씩 밑으로 나오게되면서 결국에는 k와 일치하는 idx값이 나오게 될 것이다. 궁금한점 그냥 pq에 넣을 때부터 모든것을 내림차순으로 넣으면 가능하지가 않나 생각이 드는데 cmp oeprator가 문제가 있는거는 아니겠고 내가 pq의 동작방식을 아직 정확하게 이해를 못한듯 하다. cpp 코드 while문 안에서 값이 pq와 q의 값이 같은 경우 pq에서 pop을 해주고 ++cnt를 늘려준다. 근데 만약 idx (

2023년 1월 4일
·
0개의 댓글
·
post-thumbnail

백준 - 프린터 큐(1966)

문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2 1 4 3 라면 C를 인쇄하고, 다음으로 D를 인쇄하고 A, B를 인쇄하게 된다. 여러분이 할 일은, 현재 Queue에 있는 문서의 수와 중요도가 주어졌을 때, 어떤 한 문

2022년 8월 6일
·
0개의 댓글
·
post-thumbnail

[백준] 프린터 큐 #1966

설명 와 너무너무 어이없게 실수를 해서 거의 2시간 정도 푼 것 같다... 처음에 JS로 풀었고, JS의 1번 풀이와 같이 풀었는데 시간초과 나길래 '아 역시 JS배열은 shift 연산에서 비용이 많이 들어 시간초과가 나는구나'라고 생각했다. 그래서 이전 자료구조 Queue를 사용한 문제에서 Queue class를 정의하는 것을 가져오자 이번에는 메모리 초과 오류가 나길래 이것 저것 수정하며 babel로 트랜스파일링하고 별 짓을 다해봤지만 메모리초과가 해결되지 않아 다른 사람의 Node.js 풀이를 참고했다. 참고했지만 Node.js의 풀이1과 별반 다른게 없어서 속으로 물음표를 띄우고 계속 나의 1번 풀이가 왜 시간초과가 나는지 원인을 찾으려고 별 짓을 또 다했다. 결국 차이를 찾지 못하고 같은 풀이로 c++로 했을때 또 에러가 발생할지 궁금해 c++로 풀었는데 c++로 푸는 와중에 어느 로직을 빠뜨렸다는 것을 찾았다.(20번째 줄의 n -= 1; 코드 한줄...)

2022년 1월 14일
·
0개의 댓글
·

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

문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2 1 4 3 라면 C를 인쇄하고, 다음으로 D를 인쇄하고 A, B를 인쇄하게 된다. 여러분이 할 일은, 현재 Queue에 있는 문서의 수와 중요도가 주어졌을 때, 어떤 한 문서

2021년 11월 11일
·
0개의 댓글
·

[BOJ]#1966 프린터 큐 Python

문제 https://www.acmicpc.net/problem/1966 > 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. > 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. > 예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2 1 4 3 라면 C를 인쇄하고, 다음으로 D를 인쇄하고 A, B를 인쇄하게 된다. > 여러분

2021년 2월 6일
·
0개의 댓글
·

BOJ : 프린터 큐 [1966]

분류 : 큐, 구현, 그리디 1. 문제 >여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. > 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2 1 4 3 라면 C를 인쇄하고, 다음으로 D를 인쇄하고 A, B를 인쇄하게 된다. > 여러분이 할 일은, 현재 Queue에

2021년 2월 6일
·
0개의 댓글
·