일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 리액트 네이티브 맥
- react native ios 기기 연결
- react native mac
- c++ 정보은닉
- html
- react native typescript navigation
- 스탠실 버퍼 사용
- 싸이월드
- CSS
- 스탠실 버퍼 튜토리얼
- react native typescript
- react native 타입스크립트
- react native accessible
- cyworld
- node.js
- 스탠실 버퍼 시작
- Expo
- react
- stencil buffer
- react-native
- 리액트 네이티브 설치 오류
- 벡터와 리스트의 차이
- javascript
- C++
- unity stencil buffer
- c++ using
- node
- react native
- GitHub
- react native typescript navigate
Archives
- Today
- Total
혀니의 이거저거 뿌시기
1966 프린터 큐 본문
728x90
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
tnum = int(input())
temp = []
for _ in range(tnum):
N,M = map(int, input().split())
pr = list(map(int, input().split()))
temp = [0 for _ in range(N)]
temp[M] = 1
count = 0
while True:
if pr[0] == max(pr):
count += 1
if temp[0] != 1:
pr.pop(0)
temp.pop(0)
else:
print(count)
break
else:
pr.append(pr[0])
temp.append(temp[0])
del pr[0]
del temp[0]
이 문제는 주어진 인덱스가 어느 위치에 있는지, 몇번째로 프린터에서 출력되게 해야하는지를 구하는 문제이다.
우선,같은 크기의 두가지 배열의 인덱스가 필요하다는 아이디어까지는 있었는데 실현시키진 못했었다.
1.실제 값을 담는 배열
2.인덱싱된 값을 담는 배열
두 가지를 같이 움직여야 한다.
이 문제의 답을 가장 탐욕적으로 구하기 위해서는 (아마) 정렬되면 첫번째에 있는 수는 빠져나가게 하고, 그렇게 계속 빠져나가게 하면서 우리가 구하고자 하는 그 값이 출력될 때 지금까지 저장했던 count값을 출력하면 되는 문제였다.
우선 queue의 구조를 알아야 한다.
del pr[0] = pr.pop[0]와 같은 역할로, 해당하는 인덱스의 값을 배열에서 지우는 역할을 할 수 있다.
max(pr) 배열에서 가장 큰 값을 나타내는 역할을 한다.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
1476 날짜 계산 (0) | 2022.08.12 |
---|---|
1436 영화감독 숌 (0) | 2022.08.11 |
11047 코인 (0) | 2022.08.09 |
10773 제로 (0) | 2022.08.09 |
7568 덩치 (0) | 2022.08.08 |