[프로그래머스/Python] 알고리즘고득점Kit-스택/큐-기능개발

2024. 10. 17. 16:20·코딩테스트/프로그래머스
728x90
반응형

📌 문제링크

https://school.programmers.co.kr/learn/courses/30/lessons/42586

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

📌 문제설명

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.
먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.

제한 사항

  • 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다.
  • 작업 진도는 100 미만의 자연수입니다.
  • 작업 속도는 100 이하의 자연수입니다.
  • 배포는 하루에 한 번만 할 수 있으며, 하루의 끝에 이루어진다고 가정합니다. 예를 들어 진도율이 95%인 작업의 개발 속도가 하루에 4%라면 배포는 2일 뒤에 이루어집니다.

 

📌 풀이과정

🍀 1번째 시도: ERROR: Index out of Range

  • 문제점: speeds.pop(0)을 진행하지 않아서 for문을 돌릴 때, speeds의 길이는 그대론데, q는 줄어드니까 해당 오류가 발생한 것. 
def solution(progresses, speeds):
    answer = []
    # 1. 큐에다가 일단 다 넣고 배포는 하루에 끝이라니까, 일단 speeds 더하고 체크 
    q = progresses 
    while q:
        for i in range(len(speeds)):
            q[i] = q[i] + speeds[i]
        # 1. 맨 앞이 pop되면 그때 뒤도 pop이 된다.
        cnt = 0 
        while q:
        	if q[0] < 100:
            	break
            else:
            	cnt += 1
            	q.pop(0)
                
        if cnt: answer.append(cnt)
    return answer

 

🍀 2번째 시도: PASS 

  • 위의 문제점 수정하니까 바로... 되더라고요? 하하핳 ㅎ
def solution(progresses, speeds):
    answer = []
    # 1. 큐에다가 일단 다 넣고 배포는 하루에 끝이라니까, 일단 speeds 더하고 체크 
    q = progresses 
    while q:
        for i in range(len(q)):
            q[i] = q[i] + speeds[i]
        # 1. 맨 앞이 pop되면 그때 뒤도 pop이 된다.
        cnt = 0 
        while q and q[0] >= 100: 
            cnt += 1
            q.pop(0)
            speeds.pop(0)   # 이걸 놓치다니.. 
        
        if cnt: answer.append(cnt)
    return answer

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[프로그래머스/Python] Lv2. 최댓값과 최솟값  (1) 2024.10.17
[프로그래머스/Python] 알고리즘고득점Kit-스택/큐-올바른 괄호  (0) 2024.10.17
[프로그래머스/Python] 알고리즘고득점Kit-해시-베스트앨범  (0) 2024.10.17
[프로그래머스/Python] 알고리즘고득점Kit-DFS/BFS-게임맵최단거리  (8) 2024.10.16
[프로그래머스/Python] 알고리즘고득점Kit-탐욕법(Greedy)-구명보트  (2) 2024.10.16
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • [프로그래머스/Python] Lv2. 최댓값과 최솟값
  • [프로그래머스/Python] 알고리즘고득점Kit-스택/큐-올바른 괄호
  • [프로그래머스/Python] 알고리즘고득점Kit-해시-베스트앨범
  • [프로그래머스/Python] 알고리즘고득점Kit-DFS/BFS-게임맵최단거리
heeya16
heeya16
개발 공부 냠냠
  • heeya16
    개발자 희야
    heeya16
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • 코딩테스트 (66)
        • 프로그래머스 (38)
        • SWEA (2)
        • BAEKJOON (26)
      • 알고리즘 (7)
      • 자료구조 (19)
      • 프로젝트 (5)
      • 취업 주르륵 (2)
      • 데이터베이스 (0)
      • IT지식 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    1003
    10448
    10773
    10월
    10진수
    11047
    11399
    11403
    11866
    1449
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
heeya16
[프로그래머스/Python] 알고리즘고득점Kit-스택/큐-기능개발
상단으로

티스토리툴바