2019. 1. 3. 12:41ㆍProgramming/JavaScript
[코드프로그래머스/무지의 먹방 라이브](https://programmers.co.kr/learn/courses/30/lessons/42891?language=javascript)
초안
-----
일단 되는대로 만들어봤다. 정확성 테스트조차 몇몇개는 실패다. = ㅅ=
효율성 테스트는 모두 시간초과하는 수준. 탐색하는 로직을 개선하거나, 혹은 메모리를 사용해서 탐색이 필요없게끔 수정이 필요하다.
```
//food_times의 모든 값이 0인지 감지하는 함수
function isAllValueZero (param_array) {
var isAllZero = true;
for(var i=0; i<param_array.length && isAllZero==true; i++) {
if (param_array[i] > 0) {
isAllZero = false;
}
}
return isAllZero;
}
//food_times의 다음 index를 찾는 함수
function getNextIndex (param_array, param_current_index) {
if(param_current_index > param_array.length) return -1;
//for문은 두 개지만 복잡도는 증가하지 않는다.
for(var i=param_current_index+1, nextIndex = -1; i<param_array.length && nextIndex==-1; i++) {
param_array[i] == 0 ? nextIndex=-1 : nextIndex=i;
}
if(nextIndex==-1) {
for(var i=0; i<param_current_index && nextIndex==-1; i++) {
param_array[i] ==0 ? nextIndex=-1 : nextIndex=i;
}
}
return nextIndex;
}
function solution(food_times, k) {
var answer = 0;
var indexOfFoodTimes = 0;
//1. food_times 중 0이 아닌 값들 배열의 인덱스를 찾아야한다.
//2. food_times 의 모든 값이 0인지 감지할 수 있어야한다.
while(k>0 && isAllValueZero(food_times) == false) {
food_times[indexOfFoodTimes]--;
indexOfFoodTimes = getNextIndex(food_times, indexOfFoodTimes);
k--;
}
return answer=indexOfFoodTimes+1;
}
```
'Programming > JavaScript' 카테고리의 다른 글
유튜브 썸네일 만드는 웹앱을 만들어봤다 & 상용 사이트들의 정리 (0) | 2019.01.10 |
---|---|
비트마스크를 배열로 관리하는 bitsToArrays.js (0) | 2019.01.09 |
프로그래머스/탑 (0) | 2019.01.03 |
프로그래머스/폰켓몬 (0) | 2019.01.03 |
프로그래머스/다리를 지나는 트럭 (0) | 2019.01.02 |