코딩테스트

프로그래머스 기능개발

yolang 2024. 7. 29. 21:55
728x90

 

🔗 기능개발

📌오늘의 학습 키워드

  • 큐를 사용하는 문제였다! 간단하게 생각하자.

✨공부한 내용 본인의 언어로 정리하기

  • 문제를 풀 때 고려하지 않아도 되는 요소들은 버리고 꼭 필요한 것만 가지고 간단하게 생각하면 좋다.

📚오늘의 회고

  • 어떤 문제가 있었고, 나는 어떤 시도를 했는지
    • 오늘은 각 작업이 주어지고, 그 작업을 수행하는 속도가 주어졌다.
    • 조건은 앞 순서의 작업이 완료되어야 그다음 작업을 같이 완료시킬 수 있다.
    • 그래서 while문을 통해 각각 매 순환을 돌며 작업현황을 업데이트 시켜주었고 완료된 것이 있을 때 한꺼번에 큐에서 빼줬다.
  • 어떻게 해결했는지
  • 처음에 progress를 빼줄 때 speed에서도 해당 속도를 빼줬어야 했는데 빼주지 않아서 문제가 생겼으나 금방 고쳤다.
  • 무엇을 새롭게 알았는지
    • 🥑
  • 내일 학습할 것은 무엇인지
    • 재귀..

[🤓문제 해결 코드]

def solution(progresses, speeds):
    answer = []
    progresses_stack = progresses[:]
    count = 0
    while progresses_stack:
        count += 1
        for idx, progresses in enumerate(progresses_stack[:]):
            progresses_stack[idx] = progresses + speeds[idx]
        complete = 0
        for progress in progresses_stack[:]:
            if progress >= 100:
                complete += 1
                progresses_stack.pop(0)
                speeds.pop(0)
            else:
                break
        if complete:
            answer.append(complete)
    return answer
728x90