반응형
문제 유형: 큐, 구현, 그리디
이 문제 풀이의 핵심 아이디어는 다음과 같다.
1. 현재 리스트에서 가장 큰 수가 앞에 올 때까지 회전시킨 뒤에 꺼낸다.
2. 이때, 꺼낸다는 것은 프린트를 했다는 뜻이므로, 프린트한 횟수의 카운트를 늘린다.
3. 가장 큰 수가 내가 알고 싶은 문서에 해당하면서 가장 앞에 있을 때 프린트 횟수를 출력하며 프로그램을 종료한다.
#제출코드
test_case = int(input())
for _ in range(test_case):
n, m = list(map(int, input().split()))
queue = list(map(int, input().split()))
queue = [(i, idx) for idx, i in enumerate(queue)]
count = 0
while True:
if queue[0][0] == max(queue, key = lambda x:x[0])[0]:
count += 1
if queue[0][1] == m:
print(count)
break
else:
queue.pop(0)
else:
queue.append(queue.pop(0))
반응형
'Algorithm > BOJ' 카테고리의 다른 글
| BAEKJOON #11399) ATM (python) (0) | 2021.09.01 |
|---|---|
| BAEKJOON #2839) 설탕 배달 (python) (0) | 2021.09.01 |
| BAEKJOON #1874) 스택수열 (0) | 2021.06.11 |
| BAEKJOON #2798) 블랙잭 (0) | 2021.06.10 |
| BAEKJOON #2920) 음계 (0) | 2021.05.07 |

댓글