✔️

답안

// point 각 접시별 점수가 들어있는 배열 // dish 먹고자하는 접시의 위치 function solution(point, dish){ // 배열 순서는 0부터 시작, 입력은 1부터 시작이기 때문에 -1 해준다. dish -= 1; let answer = 0; //오름차순으로 정렬 let s = point.slice(); s.sort((a, b) => { return a-b; }); console.log('s', s); while (true) { // point 제일 앞의 점수를 추출하여 p에 넣는다. 즉, 앞에 도착한 접시의 점수! // shift와 push를 활용해 회전하도록 구현할 예정 ! let p = point.shift(); // 현재 s[0]은 point 배열에서 가장 작은 값을 가지고 있음! // 현재 가장 낮은 점수를 가지고 있는 접시가 앞에 도착했다면 먹도록 할것! if (s[0] === p){ //앞에 도착한 접시가 선택한 접시라면 먹고 반복문 종료 if (dish === 0){ break; } // 선택한 접시 움직임. dish -= 1; //한 접시를 먹었음으로 하나 줄어듬 s.shift(); } else { // 접시 위 초밥을 먹을 수 있는 조건이 충족되지 않아 그대로 둔다 // shift 했던 것을 다시 push. point.push(p); // 접시의 움직임 만약 선택한 접시가 앞에 도착했다면 맨 뒤로 보내고, // 그렇지 않다면 한 칸 당긴다. if (dish === 0) { dish = point.length - 1; } else { dish = dish-1; } // 반복 한번당 접시 한번 지나감을 나타냄. } answer += 1; } return answer; } const point = prompt('점수를 입력해주세요.').split(' '); const dish = parseInt(prompt('몇번째 입니까?'), 10); console.log(solution(point, dish)); //한글 변수 풀이 function solution(접시점수, 먹을접시위치){ 먹을접시위치 -= 1 let 정답 = 0; let 정렬된접시점수 = 접시점수.slice(); 정렬된접시점수.sort((a,b) => { return a-b; }); while (true){ let 맨앞접시 = 접시점수.shift(); if (정렬된접시점수[0] === 맨앞접시){ if (먹을접시위치 === 0){ break; } 먹을접시위치 -= 1; 정렬된접시점수.shift(); } else { 접시점수.push(맨앞접시); if (먹을접시위치 === 0) { 먹을접시위치 = 접시점수.length - 1; } else { 먹을접시위치 = 먹을접시위치 - 1; } } 정답 += 1; } return 정답; } const 접시점수 = prompt('점수를 입력해주세요.').split(' '); const 먹을접시위치 = parseInt(prompt('몇번째 입니까?'), 10); console.log(solution(접시점수, 먹을접시위치));