-
[프로그래머스] 프로세스알고리즘 2023. 6. 28. 14:11728x90
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/42587
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 접근
1. 문제에서 큐를 이야기 하니 큐를 쓰자
2. priorities의 값들을 location에 해당되는 값이 아니라면 [ priorities, False ]로, 해당 값이라면 [ priorities, True ]로 q에 넣는다
3. q에 있는 값들을 prior과 flag로 뽑고, 나머지 q에 있는 값들의 prior과 처음에 뽑은 값을 비교하면서 가장 큰값이면 빼주고 ans를 증가시킨다
4. 가장 큰값일때 flag가 True라면 break를 걸고 ans값을 출력해준다
좋다!!
3. 풀이
from collections import deque def solution(priorities, location): answer = 0 q = deque() for p in range(len(priorities)): if p == location: q.append([priorities[p], True]) q.append([priorities[p], False]) check = False while True: prior, flag = q.popleft() for p,f in q: if p > prior: q.append([prior, flag]) check = True break else: continue if check == False: answer += 1 if flag == True: break check = False return answer
'알고리즘' 카테고리의 다른 글
[프로그래머스] 점프와 순간 이동 (0) 2023.06.29 [프로그래머스] 영어 끝말잇기 (0) 2023.06.28 [프로그래머스] 소수 찾기 (0) 2023.06.28 [프로그래머스] 가장 큰 정사각형 찾기 (0) 2023.06.26 [백준] 1337 - 올바른 배열 (0) 2023.05.27