2/프로그래머스

프로그래머스 연습 문제 - 기능 개발

하례은 2020. 9. 14. 02:52

programmers.co.kr/learn/courses/30/lessons/42586

 

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

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

programmers.co.kr

스택/큐 문제

 

from collections import deque

def solution(progresses, speeds):
    cont = []
    answer = []
    tr = 0
    for x, y in zip(progresses, speeds):
        c = 0 
        for i in range(x, 100):
            if x < 100:
                x = x + y
                c += 1
        cont.append(c)

    contQ = deque(cont)
    con1 = contQ.popleft()
    while len(cont):
        c = 1
        if len(contQ) == 0:
            if tr == 0: answer.append(c)
            break
        while len(cont):
            if len(contQ) > 0:
                con2 = contQ.popleft()  
                if con1 >= con2:
                    c += 1
                    tr = 1
                elif con1 < con2:
                    con1 = con2
                    tr = 0
                    break
            else: break
        answer.append(c)
    return answer

 

머리가 안돌아간다~~~

꾸역꾸역 풀었지만....좋은 코드는 아닌듯하다..

 

 

 

~다른 사람의 풀이

def solution(progresses, speeds):
    answer = []
    time = 0
    count = 0
    while len(progresses)> 0:
        if (progresses[0] + time*speeds[0]) >= 100:
            progresses.pop(0)
            speeds.pop(0)
            count += 1
        else:
            if count > 0:
                answer.append(count)
                count = 0
            time += 1
    answer.append(count)
    return answer

 

오늘도 이렇게 배워간다...