Skip to content

[Algorithm] 기능개발 #170

Description

@hwangJi-dev

💬 문제

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


💬 Idea

  • 기능별 남은 진척도를 remains 배열에 저장하고, 앞 기능이 개발완료되었을 때 꺼내어지는(같이 기능개발이 완료되어 배포되는) 기능을 스택 구조로 체크한다.

💬 풀이

import Foundation
func solution(progresses:[Int], speeds:[Int])->[Int]{varremains:[Int]=[]for(idx, progress)in progresses.enumerated(){letremain=((100- progress)/ speeds[idx])+(((100- progress)% speeds[idx])==0?0:1)
remains.append(remain)}
remains = remains.reversed()vardistributionCount=0vardistributionDay=0varres:[Int]=[]iflet rem = remains.popLast(){
distributionDay = rem
distributionCount =1}while !remains.isEmpty {if distributionDay >= remains.last! {
remains.popLast()
distributionCount +=1}else{
distributionDay = remains.popLast()??0
res.append(distributionCount)
distributionCount =1}}return distributionCount ==0? res : res +[distributionCount]}

소요시간 : 26분


💬 더 나은 방법?

func solution(progresses:[Int], speeds:[Int])->[Int]{varres:[Int]=[]varcount=0varday=0for(idx, progress)in progresses.enumerated(){letremain=((100- progress)/ speeds[idx])+(((100- progress)% speeds[idx])==0?0:1)if day ==0{
day = remain
}if day < remain {
day = remain
res.append(count)
count =1}else{
count +=1}}return count >0? res +[count]: res
}

💬 알게된 문법

✅ ceil

  • 소수점 올림시 사용

✅ floor

  • 소수점 내림시 사용

✅ round

  • 소수점 반올림시 사용

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions