250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[Algorithm] 과제 진행하기 ( Programmers - JavaScript ) 본문

[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training

[Algorithm] 과제 진행하기 ( Programmers - JavaScript )

Snow-ball 2023. 10. 10. 23:00
반응형

문제 설명

 

 

 


 

 

 

제한사항

 

 

 


 

 

 

입출력 예

 

 

 


 

 

 

입출력 예 설명

 

 

 


 

 

 

문제풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function solution(planList) {
  const answer = [];
 
  const plans = planList
    .sort((a, b) => a[1].localeCompare(b[1]))
    .map((plan) => {
      const [planHour, planMinute] = plan[1].split(":");
 
      return [plan[0], Number(planHour) * 60 + Number(planMinute), plan[2]];
    });
 
  const pauseTask = [plans.shift()];
  let pauseTime = pauseTask[0][1];
 
  while (!!plans.length) {
    const task = plans.shift();
    const [, taskTime] = task;
    let timeDifference = taskTime - pauseTime;
    pauseTime = taskTime;
 
    while (!!pauseTask.length && timeDifference > 0) {
      const latestTask = pauseTask.pop();
      const [latestTaskName, , latestTaskPlayTime] = latestTask;
 
      if (latestTaskPlayTime > timeDifference) {
        latestTask[2= latestTaskPlayTime - timeDifference;
        timeDifference = 0;
        pauseTask.push(latestTask);
      } else {
        answer.push(latestTaskName);
        timeDifference = timeDifference - latestTaskPlayTime;
      }
    }
 
    pauseTask.push(task);
  }
 
  while (!!pauseTask.length) {
    answer.push(pauseTask.pop()[0]);
  }
 
  return answer;
}
cs

 

 

 

 

 

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/176962

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

반응형
Comments