728x90
문제
플레이어는 구름 프로젝트의 일정을 관리하는 PM(프로젝트 매니저)이자 유일한 개발자다. 현재 구름 프로젝트를 완수하기 위해서는 N개의 기능 개발이 추가로 필요하다. 각 기능에는 1번부터 N번까지 번호가 붙어 있고, ¼번째 기능을 개발하는 데는 C분의 시간이 걸린다. 플레이어는 프로젝트를 기한 안에 끝내기 위해 철야 작업에 들어갔다. 플레이어가 철야 작업을 시작한 시각은 T시 M 분이다. 플레이어는 1번 기능부터 순서대로 개발을 진행하고, 한 기능 개발을 끝마치면 바로 다음 기능의 개발을 시작한다. 플레이어가 모든 기능 개발을 끝마친 시각을 구해보자.
입력
첫째 줄에 필요한 기능의 개수 N이 주어진다.
둘째 줄에 두 정수 T, M 이 공백을 두고 주어진다. 이는 현재 시각이 T시 M 분임을 의미한다.
다음 N개의 줄에는 정수 이가 주어진다. 번째 기능을 개발하는 데는 C분의 시간이
걸린다.
- 1 ≤ N ≤ 100
- 0 ≤ T ≤ 23
- 0 ≤ M ≤ 59
- 0 ≤ C ≤ 1000
출력
구름 프로젝트가 완료된 시각의 시와 분을 공백을 두고 출력하시오. 23시 59분에서 1 분이 지난 시작은 0시 0분이다.
제출 코드
const readline = require('readline');
let rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on('line', (line) => {
input.push(line.trim());
if (input.length === Number(input[0]) + 2){
rl.close();
}
})
rl.on('close', () => {
let n=Number(input[0]);
let [nowH,nowM]=input[1].split(" ").map(Number);
for(let i=0; i<n; i++){
let costM=Number(input[i+2]);
let tempM=nowM+costM;
let completeM=tempM%60;
let completeH=(nowH+Math.floor(tempM/60))%24;
nowH=completeH;
nowM=completeM;
}
console.log(nowH, nowM);
})
배운점
- 처음 코드를 제출하고 통과를 못했었는데 아마 입력범위에 문제가 있었던것 같고
- 숫자가 입력범위 안에 있어야하기 때문에 시와 분을 따로 계산한 것 같다.
느낀점
- 테스트 케이스 3,5,16이 통과를 못해서 힘들었던 문제였다.
- 또한 입력 데이터가 문자열이었기 때문에 map(Number)가 필요했다.
728x90
'코테 > 구름톤 챌린지' 카테고리의 다른 글
[ 구름톤 챌린지 ] 문자열 나누기 (0) | 2023.08.21 |
---|---|
[ 구름톤 챌린지 ] 이진수 정렬 (0) | 2023.08.20 |
[ 구름톤 챌린지 ] 완벽한 햄버거 만들기 (0) | 2023.08.20 |
[ 구름톤 챌린지 ] 합 계산기 (0) | 2023.08.20 |
[ 구름톤 챌린지 ] 운동 중독 플레이어 (0) | 2023.08.17 |