개발자 톡
연습문제 톡
위험한 효도
너무 어렵게 푼거 아닌가 싶은데..
- 등록일
- 2024-11-27 23:32:31
- 조회수
- 135
- 작성자
- zkj9404
const fs = require('fs'); const [a,b,d] = fs.readFileSync('input.txt','utf-8').split(' ').map(Number); const moveCalc = (current,moveDistance,totalDistance)=>{ if(current + moveDistance >= totalDistance){ return totalDistance - current; }else return moveDistance; } let isTouched = false; let isFinished = false; /** 소요 시간 */ let time = 0; /** 현재 위치 */ let currentLocation = 0; /* true: (터치전 기준) 술래가 앞을 바라보고 있음, false: (터치전 기준) 술래가 뒤를 바라보고 있음 */ let targetLookFront = false; // console.log(currentLocation,d) while(!isFinished){ // console.log({isTouched,time,currentLocation,targetLookFront}) // isFinished=true; if(isTouched){ /** 돌아오는 구간 */ if(!targetLookFront){ /** 술래가 뒤를 보고 있다 (남우 움직일 수 있음) */ const move = moveCalc(currentLocation,b,d); // console.log('움직이는값: ',move) time += b; currentLocation += move; targetLookFront = true; /** 출발지로 돌아오면 */ if(currentLocation == d){ time -= (b - move); isFinished = true; currentLocation = 0; targetLookFront = false; } continue; } if(targetLookFront){ /** 술래가 앞을 보고 있다 (남우 움직일 수 없음) */ time += a; targetLookFront = false; continue; } }else{ /** 술래한테 가는 구간 */ /** 술래가 뒤를 돌아보고 있는 상황 */ if(!targetLookFront){ const move = moveCalc(currentLocation,a,d) time += a; currentLocation += move; targetLookFront = true; /** 술래를 터치하면 */ if(currentLocation == d){ time -= (a - move); isTouched = true; targetLookFront = false; currentLocation = 0; } continue; } /** 술래가 앞을 바라보고 있는 상황 */ if(targetLookFront){ time += b; targetLookFront = false; continue; } } /** 종료 */ // if(isFinished){ // console.log(time) // } } // console.log('종료될거임ㅋ') console.log(time)
#위험한_효도