< 핵심 로직 >
1. 큐에서 첫 번째 원소를 뽑는다
2. 나머지 원소들 중 우선순위가 더 큰 게 있다면 큐 목록의 뒤로 보낸다
3. 그렇지 않으면 출력한다
- count +1 한다
- 현재 문서가 찾고자 하는 문서의 인덱스와 맞는지 확인한다 (맞다면 break하여 반복문을 빠져나온다)
4. 1-3번의 과정을 반복한다
tc = int(input())
answer = []
for c in range(tc):
count = 0
n, m = list(map(int, (input().split())))
priorities = list(enumerate(map(int, (input().split()))))
while True:
cur = priorities.pop(0)
if any(cur[1] < p[1] for p in priorities):
priorities.append(cur)
else:
count += 1
if cur[0] == m:
answer.append(count)
break
for a in answer:
print(a)
배운 점
- fastcampus 풀이를 참고했을 때, 튜플, max함수, 람다 함수의 이용법을 잘 연습해놔야겠다는 생각이 들었다.
문제 출처 : www.acmicpc.net/problem/1966
'> 알고리즘 문제 풀이 > BOJ' 카테고리의 다른 글
10930-SHA-256 (python) (0) | 2020.10.06 |
---|---|
5397-키로거 (python) (0) | 2020.10.03 |
1874-스택 수열 (python) (0) | 2020.10.03 |
2780-블랙잭 (python) (0) | 2020.09.29 |
2920-음계 (python) (0) | 2020.09.29 |
댓글