본문 바로가기

main/Algorithm

구름톤 챌린지 5일째 멸망한 일기..

이번주까지는 좀 쉽지않을까. . ? 생각했던 게 무색하게

4일차 햄버거만들기 에서 fail 테케를 찾지 못해서 한참 고전중이고

5일차 이진수정렬 에서 런타임에러를 어떻게 처리할 지 생각해야 하는 상황이다.

 

6일차가 이제 곧 공개 될텐데.. (아닌가 주말에는 안 하는거였나..?)

현재 Junction Asia 참가 이슈로 인해 이번주 문제는 다 못 풀 예정 ㅎ..빠르게 글먼저 올리기

 

일단 푼 코드들이라도 올려놓고 다음 주에 차근차근 풀어봐야겠다.

 

문제 1. 은 너무 쉬워서 패스 (단순 곱셈)

문제 2. 프로젝트 매니징

let n, h, m;
const minutes = [];
const setHM = (time, index) => {
	const parsedTime = Number(time);
	if(index === 0) {
		h = parsedTime;
		return;
	}
	m = parsedTime;
}

rl.on('close', () => {
	const basic = h*60 + m;
	const addition = minutes.reduce((acc, cur) => acc + cur, basic);
	const pureCalcTime = addition % 1440;
	if (pureCalcTime === 1440 || pureCalcTime === 0) {
		return console.log(0, 0)
	};
	const minute = pureCalcTime%60;
	const hour = (pureCalcTime - minute)/60;
	
	console.log(hour, minute)
})

입력을 받는 부분은 삭제했다.

로직만 보면

1. basic 변수에 시간과 분을 -> 분으로 통일한다.

2. addition 변수에 추가 기능 개발 시간을 모두 더한다.

3. pureCalcTime 변수에 추가 기능 개발 시간을 1440으로 나눈 나머지 값을 저장한다. 이는 1day가 넘어갈 경우 day 소요시간은 체크하지 않는 부분을 미리 계산해준다.

4. 이 때, 시간이 자정이라면 (0, 0)을 출력한다.

5. minute 변수에 pureCalcTime % 60을 통해 분에 해당하는 값을 먼저 계산한다.

6. hour 변수에 pureCalcTime - minute 을 통해 시에 해당하는 값만 남기고 / 60을 통해 계산한다.

 

 

문제 3. 합 계산기

rl.on('close', () => {
	const result = T.reduce((acc, cur) => {
		acc += Math.floor(eval(cur));
		return acc
	}, 0)
	console.log(result)
})

역시 입력을 받는 부분은 삭제했다.

계산식을 eval로 처리하고 소수점을 버린 뒤 그 값들을 reduce로 모두 더하여 간단하게 끝났다.

 

 

햄버거는 대체 어떻게 만드는거지..