Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- useCallback
- 오픽
- Next.js
- merge
- Kotlin
- async
- rebase
- 프로그래머스
- 엔비디아
- typescript
- 알고리즘
- 리덕스
- pull
- 웹
- 영어표현
- list
- useState
- 리액트
- javascript
- 젠슨황
- 공부
- 리사이클러뷰
- 비동기처리
- 리액트를 다루는 기술
- react
- 오픽표현
- Git
- redux
- await
- CSS
Archives
- Today
- Total
공부블로그
유연근무제 - 프로그래머스 LV.1 (JavaScript) 본문
function solution(schedules, timelogs, startday) {
// 우선 전체 인원을 넣어놓고 탈락시키는 방식
var answer = timelogs.length;
for (let i = 0; i < timelogs.length; i++) {
// i번째 사람의 스케쥴과 출근시간
let day_num = startday; // 5
const schedule = schedules[i] // 700
const times = timelogs[i] // [710, 2359, 1050, 700, 650, 631, 659]
// 주말 근무타임은 제외시키기
let day_times = []
if (startday == 7) {
day_times = times.slice(1, 6)
} else {
day_times = [...times]
day_times.splice(6 - startday, 2)
}
// 주중 출근 시간만 비교
for (const time of day_times) {
const mins = Math.floor(time / 100) * 60 + (time % 100)
const schedule_mins = Math.floor(schedule / 100) * 60 + (schedule % 100)
const gap = mins - schedule_mins // 출근시간 - 예정시간
if (gap > 10){// 10분 차이보다 크면 바로 탈락
answer -= 1
break
}
}
}
return answer;
}
코테공부가 넘 오랜만이라 머리가 안돌아가지만 그래도 하나 더 풀었다
기본 문법(slice, splice)도 좀 더 익어야할 것 같고, 일주일 단위 계산할때는 7 % n 쓰는 거 기억하기..! 이번에는 그냥 배열을 잘라버렸다
'공부하기 > 알고리즘' 카테고리의 다른 글
| 택배 상자 꺼내기 - 프로그래머스 LV.1 (JavaScript) (0) | 2025.11.22 |
|---|---|
| 프로그래머스 - [ 개인정보 수집 유효기간 ] (1) | 2023.04.18 |