Algorithm
function solution(priorities, location) {
let cycle = 0;
const processArray = priorities.map((v,i)=>[String.fromCharCode(i+65),v])
const target = processArray[location]
while(true){
const execution = processArray.shift()
const priority = processArray.filter(v=>v[1]>execution[1]).length
if(priority) {
processArray.push(execution)
continue;
}
cycle = cycle+1
if(execution[0]===target[0]) return cycle;
}
}
[프로세스이름,우선순위]
target
을 설정해 놓는다while
문을 통해 반복하고 shift()
를 통해 가장 앞 원소를 출력filter
를 사용해서 대기 배열(processAraay
)에서 우선순위가 높은 게 있는지 파악한다filter
를 사용하지 않고 some
함수를 활용했다면 더욱 좋았을 것 같다. 목적이 판별이기 때문에 some
라는 함수는 배열 판별 함수이기 때문에 코드의 목적과 더욱 알맞다cycle
(실행횟수)를 +1 한 수 만약 target
과 같다면 그대로 return
아니면 다시 반복한다퍼블리싱 연습 웹 구상
위젯 형식으로 쭉 나열해놓고 직접 연습한 퍼블리싱 웹 들을 확인해볼 수 있게 만들어보고 있다.
최근 React-native 과제를 진행하며 부족한 부분을 다 새롭게 공부하느라 거의 밤새 듯 공부하고 작업 한 거 같은데 최적화 부분에서 안드로이드 에뮬레이터가 컴퓨터 사양에서 렉이 조금 걸려 확인 하기 어려운 부분에서 많이 아쉬웠다