1. 문제 접근 방식
큐를 이용하고, 문제의 조건에 충실하여 시뮬레이션 했다.
그러다보니 조금 코드가 길어진 감도 있긴한데, 직관적이어서 보기는 좋은거같다.
2. 풀이 코드
from collections import deque
def solution(N, M, im):
queue = deque()
answer = 0
find = ''
count = 1
for i in range(0, N):
if i == M:
find = chr(ord('A') + i)
D = {chr(ord('A') + i): im[i]}
queue.append(D)
while len(queue) > 0:
p = queue.popleft()
(key, value), = p.items()
if value == max(im):
if key == find:
answer = count
break
else:
count += 1
im.remove(max(im))
else:
queue.append(p)
return answer
T = int(input())
for i in range(T):
N, M = map(int, input().split())
im = list(map(int, input().split()))
print(solution(N, M, im))
728x90
'코딩테스트 기록 > 04. Queue' 카테고리의 다른 글
[백준] 11866: 요세푸스 문제 0 (Python) (1) | 2023.11.08 |
---|