본문 바로가기
역량강화/코딩테스트

[스택/큐] 프로그래머스 - 기능개발(42586)

by 퐁시냥 2021. 9. 4.

프로그래머스 기능개발(42586) 문제 풀의 및 구현방법을 남긴다.

stack 문제인데 이전에는 직접 스택 자료구조를 만들어서 문제를 풀었다고 하면 이번 문제는 python으로 stack을 유사하게 구현했다. 

 

0. 추가 모듈

  • math : 올림 함수(math.ceil) 사용을 위함

1. 리스트 목록

  • progresses : 배포 진행률N < 100)
  • speeds : 개발 속도(N < 100)

2. 추가 리스트 

  • periods : 배포 완료되는 날짜
    • int(math.ceil(float((100 - 배포진행률)) / float(배포속도)))

3. 구현 방법 

  • list 만 사용 
  • top 초기값 -> periods[0] 으로 두고 for 문으로 progresses 배열 순차 탐색하여, top이 periods[i] 값보다 작을 때 top 변경

쉬운 문제인데 stack 자료구조를 꼭 사용해야한다! 고 생각하고 풀다보니 꼬여서 시간이 좀 걸렸다. 

import math 
def solution(progresses, speeds):
    answer = []
    periods = []
    cnt = 0
    top = 0
    for i in range(len(progresses)):
        periods.append(int(math.ceil(float(100 - progresses[i])/float(speeds[i]))))    
        if(i == 0 ) : top = periods[0]

        if top < periods[i] :
            answer.append(cnt)
            top = periods[i]
            cnt = 0
        cnt += 1
    answer.append(cnt)

    return answer

 

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는

programmers.co.kr

댓글