Count Pairs That Form a Complete Day I
EasyArrayHash TableCounting
Solution
Solution1: Brute Force
export function countCompleteDayPairs(hours: number[]): number {
const n = hours.length;
let answer = 0;
for (let i = 0; i < n; i++) {
for (let j = i + 1; j < n; j++) {
if ((hours[i] + hours[j]) % 24 === 0) {
answer += 1;
}
}
}
return answer;
}
Complexity
- Time:
O(n^2)
- Space:
O(1)
Solution2: Hash Map
export function countCompleteDayPairs(hours: number[]): number {
let answer = 0;
const counter = new Map<number, number>();
for (const hour of hours) {
const remainder = hour % 24;
answer += counter.get((24 - remainder) % 24) ?? 0;
counter.set(remainder, (counter.get(remainder) ?? 0) + 1);
}
return answer;
}
Complexity
- Time:
O(n)
- Space:
O(1)
- 0부터 23까지의 나머지만을 저장하기 때문에 복잡도는
O(1)
이 된다.
- 0부터 23까지의 나머지만을 저장하기 때문에 복잡도는