-
[일간임무] - 기능개발일간임무 2021. 10. 13. 15:31

figure 1a Elapsed time : 22min
단순하게 모든 작업들을 현재 진척도, 하루가 지날 때마다 나아가는 진척 정도로 구성된 하나의 클래스로 만들어서 For Loop을 돌 때마다 작업이 진척되도록 구성했습니다. 구현하는데 오랜 시간이 걸린 건 아니지만 이렇게 만들고 싶었던 건 아닙니다.
1. 반드시 입력으로 받은 컨테이너의 첫 번째 작업이 완성되어야 다음 작업을 출시할 수 있다.
2. 어떤 N번째 작업이 완성되어 있더라도 N보다 작은 어떤 작업 M이 완성되어 있지 않다면 N은 출시할 수 없다.
더 나은 방법이 있습니다. 저처럼 For Loop한 번을 하루로 계산하지 말고 ( 100 - 현재 진척도[i] ) / 하루 작업 진척도[i]을 하면 어떤 작업 N이 완성되는데 걸리는 남은 시간을 구할 수 있습니다. 작업 완성도가 100을 넘어야 출시가 되기 때문에 차라리 ( 100 - 현재직척도[i] ) % 하루 작업 진척도[i]로 쓰고 나머지가 있는가 없는가 나누어서 계산해도 될 것 같습니다.
이렇게 계산한 값을 Queue에 넣고 먼저 들어온 순서부터 걸리는 일수를 계산하며 만약 1번째 작업이 완성되기까지 총 7일이 걸린다면 Queue의 다음 요소들을 Pop하며 7보다 큰 수가 나올 때까지 계속 세면 됩니다. 7보다 작은 값이라면 첫 번째 작업보다 먼저 완성이 되어 있었을 테니 함께 출시가 될 것입니다.

figure 1b '일간임무' 카테고리의 다른 글
[일간임무] - 타겟 넘버 (0) 2021.10.14 [일간임무] - 124 나라의 숫자 (0) 2021.10.14 [일간임무] - 행렬 테두리 회전하기 (0) 2021.10.11 [일간임무] - 가장 긴 증가하는 부분 수열 (0) 2021.10.10 [일간임무] - 단체사진찍기 (0) 2021.10.10