일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자바
- C
- 독서
- 독후감
- 다독
- 화장품
- 서평
- 주식
- 백준알고리즘
- 알고리즘공부
- 투자
- 경제
- 채권
- algorithmTest
- C++
- 성분
- 자바스크립트
- 책을알려주는남자
- 책알남
- Java
- 프로그래머스 알고리즘 공부
- 돈
- JavaScript
- 알고리즘트레이닝
- 지혜를가진흑곰
- algorithmtraining
- 재테크
- 알고리즘 공부
- 프로그래밍언어
- algorithmStudy
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
[Algorithm] 주차 요금 계산 (Programmers - JavaScript) 본문
[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training
[Algorithm] 주차 요금 계산 (Programmers - JavaScript)
Snow-ball 2023. 12. 12. 22:51반응형
문제 설명
주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 떄, 차량별로 주차요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다.
제한사항
입출력 예
입출력 예 설명
입출력 예 #1
문제 예시와 같습니다.
풀이:
[ 주차 요금 계산 ] 알고리즘 문제의 경우에는 recodes 배열이 for문을 한번 도는 동안 얼마나 시간을 사용했는지에 대해 계산처리하면 되는 문제였다.
순서를 정리하자면,
첫째. recodes 배열에 값을 기준으로 In/Out 기준으로 분기처리를해 시간 계산처리를 한다.
둘째. 차 번호는 작은숫자의 순서대로 정렬이 되어야 하기 때문에 정렬을 하면서, 요금을 정산하기 전 table의 totalTime 값이 0보다 작다면 출차하지 않았기 때문에 23:59기준으로 처리를한다.
셋째. 요금을 정산하여 배열에 담는다.
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
32
33
34
35
36
37
|
function solution(fees, records) {
const answer = [];
const table = {};
const carNumberSet = new Set();
records.forEach((el) => {
const [time, carNumber, IO] = el.split(" ");
const [hour, minute] = time.split(":").map(Number);
const totalTime = hour * 60 + minute;
carNumberSet.add(carNumber);
if (IO === "IN") {
table[carNumber] = (table[carNumber] || 0) - totalTime;
} else {
table[carNumber] += totalTime;
}
});
[...carNumberSet].sort().forEach((key) => {
if (table[key] < 1) {
table[key] += 1439;
}
const [basicTime, basicFee, unitTime, unitFee] = fees;
if (table[key] < basicTime) {
answer.push(basicFee);
} else {
answer.push(
basicFee + Math.ceil((table[key] - basicTime) / unitTime) * unitFee
);
}
});
return answer;
}
|
cs |
https://school.programmers.co.kr/learn/courses/30/lessons/92341
반응형
'[Snow-ball]프로그래밍(컴퓨터) > Algorithm Training' 카테고리의 다른 글
[Algorithm] n^2 배열 자르기 ( Programmers - JavaScript ) (0) | 2023.12.22 |
---|---|
[Algorithm] k진수에서 소수 개수 구하기 ( Programmers - JavaScript ) (0) | 2023.12.20 |
[Algorithm] 두 큐 합 같게 만들기 (Programmers - JavaScript) (0) | 2023.12.11 |
[Algorithm] 숫자 카드 나누기 (Programmers - JavaScript) (0) | 2023.12.08 |
[Algorithm] 귤 고르기 (Programmers - JavaScript) (0) | 2023.12.07 |
Comments