์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ํ๋ก๊ทธ๋๋จธ์ค ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- ๋ฆฌ์กํธ์ฟผ๋ฆฌ suspense
- ๋ฐฑ์ค 2108 ์๋ฐ์คํฌ๋ฆฝํธ
- app router emotion
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง ํ๊ณ
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง
- ์นด์นด์ค ์ฝํ
- ์ค์ฝํ
- TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more:
- ๋ฐฑ์ค 1339๋ฒ js
- js ์ค์ฝํ
- js
- js ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- emotion RSC
- suspense ๋ณ๋ชฉํ์
- ์๋ฐ์คํฌ๋ฆฝํธ ์ค์ฝํ
- next13 emotion
- suspense ๋์์๋ฆฌ
- suspense react-query
- ์ต์ ๋์ฒด์ด๋
- ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ์์ถ
- ๋ฐฑ์ค 1339๋ฒ nodejs
- ๋ฐฑ์ค 2108 nodejs
- ์ฌ์ฉ์ฑ ๊ฐ์
- ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์์ด ์์ถ
- js ๋ฌธ์์ด ์์ถ
- emtion app router
- ๊ตฌ๋ฆํค
- suspense ๋น๋๊ธฐ
- ๋ฐฑ์ค 1339๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ
- Today
- Total
Lennon FE
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ(js) ๋ณธ๋ฌธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ(js)
Lennon 2022. 1. 22. 19:52https://programmers.co.kr/learn/courses/30/lessons/92341?language=javascript
const timeToMin = (time) => {
let words = time.split(':');
return Number(words[0]) * 60 + Number(words[1]);
}
function solution(fees, records) {
// ๋ฐฐ์ด๋ก ์์ ๋ฐ ์ฐจ๋ ๋ฒํธ๋ก ์ ๋ ฌ
records = records.map(v => v.split(' ')).sort((a,b) => a[1]-b[1]);
// ์ ์ผํ ์ฐจ๋๋ฒํธ ๋ฐฐ์ด ์์ฑ
const uniqueCars = [...new Set(records.map(v => v[1]))];
// ์ฐจ๋๋ฒํธ๋ณ ์
์ถ์ฐจ ๋ฐฐ์ด ์์ฑ (์
์ถ์ฐจ ์๊ฐ ํ์๋ฉด ๋ค์ 23:59 push)
const result = uniqueCars.map((v) => {
const arr = [];
for(let i = 0; i < records.length; i++){
if(v === records[i][1]) {
arr.push(records[i]);
}
}
if(arr.length % 2 === 1) {
return [...arr, ['23:59', v, 'OUT']]
} else {
return arr;
}
})
// [์ด ์๊ฐ(minute)] answer๋ฐฐ์ด ์ด๊ธฐํ
const answer = result.map(v => {
let minute = 0;
for(let i = 0; i < v.length; i+=2){
const time = timeToMin(v[i+1][0])-timeToMin(v[i][0]);
minute += time;
}
return minute;
})
// ์ฐจ๋ ๋ฒํธ๋ณ ์ ๋ ฌ ํ ๊ธ์ก ๊ณ์ฐ ํ return
return answer.map(v => {
let price = 0;
if(v > fees[0]) {
return fees[1] + Math.ceil((v-fees[0]) / fees[2]) * fees[3]
} else {
return fees[1];
}
})
}
์ ๋ง ๋ค์ํ๊ฒ ํธ๋ ์ฌ๋๋ค์ด ๋ง์ ๋ฌธ์ ์๋ค.
์ฌ์ค ์ ๊ทผ๋ฒ ์์ฒด๊ฐ ๋ด๊ฐ ํ๋ฆฐ ๊ฒ ๋ง์ ์๋ ์๋ค. ์ฃผ์ด์ง ๋ฐฐ์ด์ in, out ์์๋ฅผ ์ฌ์ฉ ์ ํ๊ณ ํ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ค์ ๊ณต์ฑ๋๋ ํ์๋ ๋ฌธ์ ์๋๋ฐ ์ง๊ธ์ด๋ ๋น์ทํ๊ฒ ํ์๋ ๊ฒ ๊ฐ๋ค.
๋ด ์๊ณ ๋ฆฌ์ฆ
1. ์ฃผ์ด์ง records ๋ฐฐ์ด์ ์ฐจ๋ ๋ฒํธ๊ฐ ์์ ์์๋ก ์ ๋ ฌํ๋ค. (๊ฒฐ๊ณผ ๊ฐ์ด ์ฐจ๋๋ฒํธ๋ณ๋ก ์์ ์์๋๋ก ๊ธ์ก์ด ๋ฐํ๋์ด์ผ ํจ)
2. ์ฐจ๋์ ์๋ฅผ ์ผ๋ค. => ์ฐจ๋ ๋ณ๋ก ์ ์ถ์ฐจ๋ฅผ ๊ธฐ๋กํ๋ค. => ๊ฐ์๊ฐ ํ์๋ฉด ์์ง ์ ๋๊ฐ๊ฑฐ๋(in=>out=>in)
['23:59', '์ฐจ๋๋ฒํธ', 'out'] ๋ฅผ ๋ฐฐ์ด์ pushํ๊ณ returnํ๋ค.
=> ๊ทธ๋ผ ๋ชจ๋ ์ฐจ๋์ ๋ํด ์ ์ฐจ, ์ถ์ฐจ ๊ธฐ๋ก ์์๋๋ก ์ ์ฅ์ด ๋์ด์๋ ๋ฐฐ์ด์ด ์์ฑ๋๋ค.
3. timeToMin ํจ์๋ฅผ ์ด์ฉํด ์ ,์ถ์ฐจ๋ฅผ ์๊ฐ ์ฐจ๋ฅผ ๋๊น์ง ๋ฐ๋ณตํด ๊ตฌํด์ฃผ๊ณ answer ๋ฐฐ์ด์ ์ ์ฅํด์ค๋ค.
4. answer ๋ฐฐ์ด์์ ๋ฌธ์ ์์ ์ฃผ์ด์ง๋๋ก ๊ณ์ฐํ๊ณ ๊ฒฐ๊ณผ ๊ธ์ก์ ๋ฐฐ์ด ํ์์ผ๋ก returnํ๋ค.
'๐ฅ Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv.1] ํคํจ๋ ๋๋ฅด๊ธฐ (js) (0) | 2022.01.24 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ(js) (0) | 2022.01.22 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ(js) (0) | 2022.01.22 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] n์ง์ ๊ฒ์(js) (0) | 2022.01.22 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ํํ (js) (0) | 2021.11.18 |