274. H-Index

  • counting 문제
  • 인용 횟수citations[i]λŠ” μ΅œλŒ€ 1000개 μ΄λ―€λ‘œ counterλ₯Ό μ‚¬μš©ν•˜μ—¬ 인용 νšŸμˆ˜λ³„ ν•΄λ‹Ήλ˜λŠ” λ…Όλ¬Έμ˜ 수counter[k]λ₯Ό μ…€ 수 μžˆλ‹€.
  • k회 이상 인용된 λ…Όλ¬Έμ˜ 수sumλŠ” 1000 λΆ€ν„° 거꾸둜 더해가면 ꡬ할 수 있고 sum β‰₯ k λ₯Ό λ§Œμ‘±ν•˜λŠ” μ΅œλŒ€μ˜ k 값이 κ²°κ΅­ h-indexκ°€ λœλ‹€.
class Solution { public: int hIndex(vector<int>& citations) { vector<int> counter(1001); fill(counter.begin(), counter.end(), 0); for (int c : citations) { ++counter[c]; } int sum = 0; for (int h = 1000; h >= 0; --h) { sum += counter[h]; if (sum >= h) return h; } return 0; } };