😈 그 시간 사무실에 몇 명이 있었나?
아마존 면접문제
출처: http://www.careercup.com/question?id=13817668
📗 문제 설명
A사무실에는 특정일자의 출퇴근 시간이 기록된 거대한 로그파일이 있다고 한다.
파일의 형식은 다음과 같다. (한 라인에서 앞부분은 출근시간(HH:MM:SS), 뒷부분은 퇴근시간이다)
09:12:23 ~ 11:14:35
10:34:01 ~ 13:23:40
10:34:31 ~ 11:20:10
특정시간을 입력(예:11:05:20)으로 주었을 때 그 시간에 총 몇 명이 사무실에 있었는지 알려주는 함수를 작성하시오.
💎나의 풀이
아마존에 입사를 해보자.
우선 문제에서 주어진 형식을 string 타입으로 정해주자.
let log = `09:12:23 11:14:35
10:34:01 13:23:40
10:34:31 11:20:10`
요놈을 출근 퇴근 형식으로 split 해주자.
let log = `09:12:23 11:14:35
10:34:01 13:23:40
10:34:31 11:20:10`
console.log(log.split('\n'))
// ["09:12:23 11:14:35 "
// ,"10:34:01 13:23:40 "
// ,"10:34:31 11:20:10"]
출력 된 내용을 변수에 담아준뒤에 주어지는 특정시간과 비교해주어야 되기 때문에
출근과 퇴근을 따로 담아주자.
let log = `09:12:23 11:14:35
10:34:01 13:23:40
10:34:31 11:20:10`
let logs = log.split('\n');
for (let l of logs){
let a = l.split(' ')[0].split(':').join('')
let b = l.split(' ')[1].split(':').join('')
console.log(a) // 출근 시간
console.log(b) // 퇴근 시간
// 출력 내용
//"091223"
//"111435"
//"103401"
//"132340"
//"103431"
//"112010"
}
time을 주어지는 변수로 사용해서 조건을 작성하여 count를 ++ 해주게 되면 아마존에 취업 할 수 있다.
출근 <= time && <= 퇴근
출근과 퇴근 사이에 포함이 되는지 판단한 뒤 count++ 해주자.
let time = '09:12:26'.split(':').join('')
let log = `09:12:23 11:14:35
10:34:01 13:23:40
10:34:31 11:20:10`
let logs = log.split('\n');
let count = 0;
for (let l of logs){
let a = l.split(' ')[0].split(':').join('')
let b = l.split(' ')[1].split(':').join('')
if (a <= time && time <= b){
count++
}
}
console.log(count)
당신은 아마존에 취업 할 수 있을 것이다.
'코딩테스트 > 코딩도장' 카테고리의 다른 글
[코딩도장 😈] 숫자 출력하기 (0) | 2024.01.11 |
---|