7-12

hoin_lee·2023년 7월 16일
0

TIL

목록 보기
199/236

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 과제를 진행하며 부족한 부분을 다 새롭게 공부하느라 거의 밤새 듯 공부하고 작업 한 거 같은데 최적화 부분에서 안드로이드 에뮬레이터가 컴퓨터 사양에서 렉이 조금 걸려 확인 하기 어려운 부분에서 많이 아쉬웠다

https://github.com/hoinlee-moi/RN_TodoList

profile
https://mo-i-programmers.tistory.com/

0개의 댓글