https://programmers.co.kr/learn/courses/30/lessons/42586
코딩테스트 연습 - 기능개발
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는
programmers.co.kr
1번에서 작업 완료 시각을 계산하는 방법은
작업은 100이 완성이므로 100에서 이미 완료되있는 값을 뺀값을 작업속도로 나눠준다.
나머지가 있을 경우 그 작업을 위해 하루 더 일해야하므로 +1 해준다.
// [프로그래머스] 기능개발 (Kotlin) import java.util.* class Solution { fun solution(progresses: IntArray, speeds: IntArray): IntArray { var answer = intArrayOf() var queue : Queue<Int> = LinkedList<Int>() // 완성되는 날 저장 var result = arrayListOf<Int>() // 결과값 저장 for(i in progresses.indices){ val remain = 100 - progresses[i] // 남은 작업량 val curSpeed = speeds[i] var result = 0 if(remain % curSpeed == 0){ result = remain / curSpeed } else{ result = remain / curSpeed + 1 } queue.offer(result) } while(queue.isNotEmpty()){ var curValue = 1 // 배포 가능한 개수 var cur = queue.poll() // 현재 기준값 while(queue.isNotEmpty()){ if(queue.peek() <= cur){ queue.poll() curValue++ } else{ break } } result.add(curValue) } answer = result.map { i -> i }.toIntArray() return answer } }
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.