개발자 톡
자바스크립트 8번만 실패하네요...ㅠㅠ
- 등록일
- 2024-01-09 17:38:43
- 조회수
- 372
- 작성자
- suho924
const input = require('fs').readFileSync(0).toString().trim().split("\n");
const limitKmCnt = input[0].split(" ")[0]; // 리밋km 갯수
const testKmCnt = input[0].split(" ")[1]; // 테스트km 갯수
input.shift(); // 갯수 뽑아서 담았으니 제거
// 리밋 리스트 담기
const limitKmList = []; //리밋km list
for(let i=0; i<limitKmCnt; i++) limitKmList.push(input[i]);
input.splice(0, limitKmCnt); //리밋km 제거
// 테스트 리스트 담기
const testKmList = []; //테스트km list
for(let j=0; j<testKmCnt; j++) testKmList.push(input[j]);
input.splice(0, testKmCnt); //테스트km 제거
//리밋 원하는 형태 만들어 주기
let lKmstdr = 0;
const diffLimitKmList = [];
for(let li=0; li<limitKmList.length; li++) {
if(limitKmList[li] !== undefined) {
let distance = Number(limitKmList[li].split(" ")[0]);
diffLimitKmList.push(`${(li == 0) ? lKmstdr : lKmstdr+1}~${lKmstdr + distance} : ${limitKmList[li].split(" ")[1]}`)
lKmstdr += distance;
}
}
//테스트 원하는 형태 만들어 주기
let tKmstdr = 0;
const diffTestKmList = [];
for(let ti=0; ti<testKmList.length; ti++) {
if(testKmList[ti] !== undefined) {
let distance = Number(testKmList[ti].split(" ")[0]);
diffTestKmList.push(`${(ti == 0) ? tKmstdr :tKmstdr+1}~${tKmstdr + distance} : ${testKmList[ti].split(" ")[1]}`)
tKmstdr += distance;
}
}
//제한속도를 가장 크게 벗어난값 확인하기
let result = 0;
diffTestKmList.map((e, i) => {
const firstVal = Number(e.split("~")[0]); //test값 첫번째
const secondVal = Number(e.split("~")[1].split(":")[0].trim()); //test값 두번째
const testFastValue = Number(e.split("~")[1].split(":")[1].trim()); //test 속도값
diffLimitKmList.map((ee, ii) => {
const stdrFirstVal = Number(ee.split("~")[0]); //기준값 첫번째
const stdrSecondVal = Number(ee.split("~")[1].split(":")[0].trim()); //기준값 두번째
const stdrFastValue = Number(ee.split("~")[1].split(":")[1].trim()); //기준 속도값
//첫번째 테스트값이 어느 기준값에 속하는지 알기
if(stdrFirstVal <= firstVal && firstVal <= stdrSecondVal) {
if(result < (testFastValue-stdrFastValue) ) {
result = testFastValue-stdrFastValue;
}
}
//두번째 테스트값이 어느 기준값에 속하는지 알기
if(stdrFirstVal <= secondVal && secondVal <= stdrSecondVal) {
if(result < (testFastValue-stdrFastValue) ) {
result = testFastValue-stdrFastValue;
}
}
})
})
// console.log(diffLimitKmList)
// console.log(diffTestKmList)
console.log(result)
// 0~50: 50 || 51~90: 40 || 91~100: 30
// 0~60: 76 || 61~78: 28 || 79~100: 50
// 0~50: 90 || 51~60: 90 || 61~100: 50
// 0~50: 40 || 51~60:100 || 61~100: 40
반례를 못찾겠는데 혹시 부탁좀 드려도 될까요??