조금 개선할 수 있는 부분이라면 mp[num] = mp[num] + 1로 쓰는 것보다는 ++mp[num]으로 하는 것이 빠릅니다. 전자는 mp[num]을 두 번 호출하고 그 때마다 트리 내에서 O(logN) 시간의 탐색이 발생하는데, 후자는 이 횟수를 하나로 줄일 수 있습니다.
그리고 cout을 쓰는데 %d를 쓴 건 무의미한 문장입니다. ("%d", mp[num])이라는 식 자체가 콤마 연산자의 동작 원리에 따라 좌항이 아무 역할도 하지 않고 그대로 버려지고 mp[num]만 값으로 취했기 떄문에 동작이 되었을 뿐입니다. 그냥 cout << mp[num] << " ";이면 충분합니다.
lshsys78 1년 전
cin cout 사용해서 출력해보았는데 900ms 넘는 시간이 나왔어요 ㅠㅠ
그래서 입출력 부분만 scanf printf 로 바꾸어보았는데 시간초과가 나더라구요..
어느 부분에서 시간이 오래걸렸을지 궁금해서 질문 드립니다 !