이 문제는 처음에 map으로 접근하여 해결하려했다.
하지만 map[i] 와 같이 접근했을 때 i의 범위가
-100 ≤ a < b ≤ 100 인 것을 고려하지 않아서 해맸다.
결국 배열로 풀었다.
음수를 처리하기 위해 모든 값에 동일하게 + 100의 오프셋을 주어
-100 ~ 100의 정수 값을 0 ~ 200에 대응했다.
#include <string>
#include <vector>
using namespace std;
int solution(vector<vector<int>> lines) {
int answer = 0;
int offset = 100;
int cnt[201] = {0}; // -100 ~ 100을 0 ~ 200에 대응
for (int i = 0; i < lines.size(); i++) {
int start = lines[i][0] + offset;
int end = lines[i][1] + offset;
for (int j = start; j < end; j++) {
cnt[j]++;
}
}
for (int i = 0; i < 201; i++) {
if (cnt[i] >= 2) answer++;
}
return answer;
}