Hey Tech
큐/스택 자료구조 #프로그래머스 #기능개발 | 파이썬 구현 본문
728x90
반응형
📚 문제
문제 원본: https://programmers.co.kr/learn/courses/30/lessons/42586
🤔 접근법
⚙️ 핵심 자료구조: 스택
본 문제의 핵심 전략은 진도 업데이트 및 [0] 인덱스 기능의 진도가 100 이상 완수되었는지 반복적으로 확인하는 것입니다.
구현 과정을 조금 더 자세히 설명해 드리자면 다음과 같습니다.
먼저, 모든 기능의 진도(progresses)를 업데이트하고, [0] 인덱스 기능 개발이 완료되었는지(i.e., progresses = 100) 확인합니다.
개발 완료 시 추가 개발이 필요 없으므로 pop(0)를 활용해 [0] 인덱스 기능 정보를 제거합니다.
[0] 인덱스가 pop 되면 [1] 인덱스였던 데이터가 곧 [0] 인덱스가 되므로 개발이 완료된 기능들을 차례로 배포할 수 있습니다.
이 과정을 통해 배포할 기능 개수를 산출하는 것입니다.
모든 기능이 개발 완료될 때까지 위의 과정을 반복하면 정답을 구할 수 있습니다.
💻 My solution
def solution(progresses, speeds):
answer = []
while progresses:
for i in range(len(progresses)):
progresses[i] += speeds[i]
cnt = 0
while progresses and progresses[0] >= 100:
progresses.pop(0)
speeds.pop(0)
cnt+=1
if cnt:
answer.append(cnt)
return answer
스택 자료구조에서 활용되는 pop 함수에 인덱싱 0을 입력함으로써 [0] 인덱스 데이터를 pop 하도록 응용하였습니다.
👀 참고할 만한 포스팅
1. [자료구조] 스택(Stack)에 대해 알아보자(+ Python)
2. [자료구조] 큐(Queue)에 대해 알아보자(+ Python)
아낌없는 피드백 & 질문 환영합니다 :)
아래에 👇👇👇 댓글 남겨주세요!
그럼 오늘도 즐거운 하루 보내시길 바랍니다.
고맙습니다.
728x90
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
DFS 알고리즘 #프로그래머스 #타겟넘버 | 파이썬 풀이 (0) | 2021.08.27 |
---|---|
완전 탐색 알고리즘 #프로그래머스 #모의고사 | 파이썬 구현 (0) | 2021.08.27 |
다이나믹프로그래밍(DP) #프로그래머스 #정수 삼각형 | 파이썬 풀이 (0) | 2021.08.26 |
BFS 알고리즘 | 백준#17086 #실버 | "아기상어2" | 파이썬 풀이 (0) | 2021.08.24 |
BFS 알고리즘 | 백준#11123 #실버 | "양 한 마리, 양 두 마리" | 파이썬 풀이 (2) | 2021.08.20 |