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
- JS
- 타겟넘버
- 프로그래머스
- solved.ac골드
- 두원사이의정수쌍
- React.StrictMode
- 이중지도
- 백준알고리즘
- [pccp 기출문제]
- 알고리즘 문제풀이
- Lv2
- 지도 여러개
- DP
- 코어자바스크립트
- solved.ac플래티넘
- 우박수열정적분
- 5강클로저
- 과제진행하기
- 정렬
- JS스터디
- 2023카카오블라인드코테
- c++
- Lv3
- div2개
- 비트마스크
- 백준 알고리즘
- 최소스패닝트리
- 알고리즘문제풀이
- 스택
- pccp기출문제
Archives
- Today
- Total
호지
[프로그래머스] 주차 요금 계산 문제풀이 JS 본문
records를 공백을 기준으로 split하여
[time, carNumber, IN/OUT]으로 구분되게 데이터를 생성한다(cars)
결과값은 차량번호가 낮은 순으로 반환하게 되어있으므로,
시간 순으로 정렬되어 있는 cars를 차량번호 순으로 정렬하면 IN/OUT순으로 정렬된다.
따라서 cars를 순회하면서 차량번호 순서대로 총 주차시간을 구한다.
이때 OUT이 없으면 23시 59분을 기준으로 값을 구한다.
차량번호 오름차순 순으로 총 주차시간을 구하면
각 주차시간에 해당하는 요금을 구하게 되면, 원하는 결과를 얻을 수 있다.
올림은 Math.ceil함수를 사용하면 된다.
const solution = (fees, records) => {
const answer = []
let index = -1
let time = []
const cars = []
for (const record of records) {
const r = record.split(' ')
cars.push(r)
}
cars.sort((v1, v2) => v1[1] - v2[1])
let carNumber
for (let i = 0; i < cars.length; i++) {
if (carNumber !== cars[i][1]) {
index++
carNumber = cars[i][1]
}
let h1, m1, h2, m2
;[h1, m1] = cars[i][0].split(':')
if (i + 1 !== cars.length && cars[i + 1][1] === carNumber) {
;[h2, m2] = cars[i + 1][0].split(':')
i += 1
} else {
;[h2, m2] = [23, 59]
}
const currentTime = parseInt(h2) * 60 + parseInt(m2) - (parseInt(h1) * 60 + parseInt(m1))
time[index] = time[index] ? time[index] + currentTime : currentTime
}
for (let i = 0; i < time.length; i++) {
let fee = fees[1]
time[i] -= fees[0]
if (time[i] > 0) {
fee += Math.ceil(time[i] / fees[2]) * fees[3]
}
answer.push(fee)
}
return answer
}
https://school.programmers.co.kr/learn/courses/30/lessons/92341
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [PCCP 기출문제] 2번/ 석유시추 문제풀이 JS (5) | 2024.07.23 |
---|---|
[프로그래머스] [PCCP 기출문제] 1번 / 붕대 감기 문제풀이 JS (0) | 2024.07.22 |
[프로그래머스] 우박수열 정적분 문제풀이 JS (0) | 2023.09.19 |
[프로그래머스] 숫자카드 나누기 문제풀이 JS (0) | 2023.09.19 |
[프로그래머스] 귤 고르기 문제풀이 JS (0) | 2023.09.19 |
Comments