320x100
문제 : https://leetcode.com/problems/pairs-of-songs-with-total-durations-divisible-by-60/
map을 이용했다.
[30, 20, 150, 100, 40, 60, 60] 이 입력이 주어졌으면 이를 60으로 나눈 값들의 개수를 map에 저장한다.
key = 60으로 나눈 나머지. value = 개수
즉, 위 예제에서는 [30, 20, 30, 40, 40, 0, 0]을 key, value형태에 맞춰 넣으면
{0, 2}, {20, 1}, {30, 2}, {40, 2}가 map에 들어간다.
짝이 될 수 있는 것은 20 - 40. 30 쌍이다.
0 쌍의 개수는 2 * 1 = 2.
20 - 40 쌍의 개수는 1 * 2 = 2.
30 쌍의 개수는 2 * 1 = 2.
이를 모두 더하면 된다.
시간복잡도는 대충 O(NlogN) 정도 될 듯.
소스코드 : https://gist.github.com/fpdjsns/5d8a60694f68f51a2afd25796fe50c2e
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[leetcode][1021] Best Sightseeing Pair (0) | 2019.03.29 |
---|---|
[leetcode][1014] Capacity To Ship Packages Within D Days (0) | 2019.03.22 |
[leetcode][1009] Complement of Base 10 Integer (0) | 2019.03.17 |
[leetcode][1005] Maximize Sum Of Array After K Negations (0) | 2019.03.16 |
[leetcode][1008] Construct Binary Search Tree from Preorder Traversal (0) | 2019.03.13 |
댓글