[Programmers]機能の開発


🔦 提问链接


▼▼私の草


キューから取り出すには、
  • の条件を満たす必要があります.
  • の条件を満たすのに要する時間の全てを記録する리스트
  • を作成する.
  • 2리스트を導入に使用可能
    全部取り出すまで
  • を繰り返します

    🛠 マイコード

    # velog
    # zip에 대한 공부
    # math 올림 반올림에 대한 공부
    
    def solution(progresses, speeds):
        date = []
        answer = []
        for i, v in enumerate(progresses):
            temp = speeds[i]
            val = 100 - v
            if val % temp != 0:
                date.append(int(val // temp + 1))
            else:
                date.append(int(val / temp))
        print(date)
        i = 0
        while i < len(date):
            print(i)
            start = date[i]
            num = 1
            while i < len(date) - 1:
                if start >= date[i + 1]:
                    i += 1
                    num += 1
                else:
                    break
            i += 1
            answer.append(num)
    
        return answer

    ▼▼他人解

  • 時間スキャン
  • は、1回の繰り返し文によって
  • を解決する.
  • は、現在減算すべき値が100%になるまで、time
  • に増やします.
  • 値が100%を超えると、countがキューから減算され、
  • が増加する.
  • の次のキューを確認します.100%でない場合、配置と初期化の数はcountです.
    キューがすべて失われるまで
  • を繰り返し、
  • を繰り返します.

    🛠 他者コード

    def solution(progresses, speeds):
        print(progresses)
        print(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