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 |
29 | 30 | 31 |
Tags
- custom printing
- html
- react-native-dotenv
- dvh
- animation
- augmentedDevice
- silent printing
- Can't resolve
- react-native
- 이미지 데이터 타입
- device in use
- github lfs
- ELECTRON
- rolldown
- adb connect
- camera permission
- Each child in a list should have a unique "key" prop.
- github pdf
- github 100mb
- npm package
- nextjs
- camera access
- adb pair
- electron-packager
- ffi-napi
- Git
- vercel git lfs
- Recoil
- Failed to compiled
- 티스토리 성능
Archives
- Today
- Total
Bleeding edge
[LeetCode] 1701. Average Waiting Time - 자바스크립트 0617 본문
https://leetcode.com/problems/average-waiting-time/
음식점에서 평균적으로 얼마나 손님들이 시간을 소요하는지 문제를 구하는 문제이다. 문제에는, 손님들이 온 시간과 먹은 시간이 기록된 리스트가 주어져 있다.
문제풀이
1. 현재 시간을 선언한다. 이때 손님이 온 시간을 모르니 0으로 선언한다.
2. 전체 시간을 선언한다. 시간이 소요될 때마다 시간을 더한다. 처음 선언할 때는 0으로 선언한다.
let currentTime = 0;
let wholeTime = 0
3. 주어진 arr에 for loop문을 적용한다. 이때 customer[i][0]을 waitingTIme, customer[i][1]을 eatingTime으로 한다.
for (let i = 0; i < customers.length; i++) {
const [waitingTime, eatingTime] = customers[i]
}
4. 손님이 입장한 시간부터 시간을 세야하기 때문에 만일 currentTime이 waitingTIme보다 작다면 둘이 같게 만들어준다.
for (let i = 0; i < customers.length; i++) {
const [waitingTime, eatingTime] = customers[i]
if (currentTime < waitingTime) {
currentTime = waitingTime
}
}
5. 전체시간에, 현재시간-waitingTime + eatingTime을 더해준다. 현재 손님이 도착한시간과 이전 손님이 먹고 있는 시간의 차이와 현재 손님이 먹는 시간을 더한 값이다.
6. 현재시간을 먹는 시간에 더해준다.
for (let i = 0; i < customers.length; i++) {
const [waitingTime, eatingTime] = customers[i]
if (currentTime < waitingTime) {
currentTime = waitingTime
}
wholeTime += currentTime - waitingTime + eatingTime
currentTime += eatingTime
}
최종 풀이
var averageWaitingTime = function (customers) {
let currentTime = 0;
let wholeTime = 0
for (let i = 0; i < customers.length; i++) {
const [waitingTime, eatingTime] = customers[i]
if (currentTime < waitingTime) {
currentTime = waitingTime
}
wholeTime += currentTime - waitingTime + eatingTime
currentTime += eatingTime
}
return wholeTime / customers.length
};
'코딩테스트 공부' 카테고리의 다른 글
[LeetCode] 118. Pascal's Triangle - 자바스크립트 0620 (0) | 2022.06.20 |
---|---|
[LeetCode] 66. Plus One - 자바스크립트 0620 (0) | 2022.06.20 |
[LeetCode] Reverse Prefix of Word - 자바스크립트 0617 (0) | 2022.06.17 |
[LeetCode] 1299. Replace Elements with Greatest Element on Right Side - 자바스크립트 0617 (0) | 2022.06.17 |
[LeetCode] 75. Sort Colors - 자바스크립트 0616 (0) | 2022.06.16 |