小红每天都要背单词,然后她会把每天记住了多少单词记录下来,并在小红书上打卡。
当小红背单词时,如果她已经记住了
个单词,且背了一个没有记住的新单词
次,则她就会记住这个新的单词。
例如,当她按顺序背["you","thank","thank"]时,她第一次背单词"you"时她就能记住"you"。而由于她已经记住了一个单词,所以需要背两次"thank"才能记住"thank"。
第一行一个整数。
接下来行,每行一个字符串,保证每个字符串长度不超过 10。
输出一个整数,表示她记住了多少个单词。
5 you thank queue queue thank
2
小红先记住了单词"you",又因为背了两次"queue",于是记住了单词"queue"。由于已经记住了两个单词,所以背两次"thank"还不能让小红记住。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
while(line = await readline()){
let n = Number(line);
let ans = 0;
let map = new Map();
let memed = new Set();
for (let i = 0; i < n; i++) {
let word = await readline();
map.set(word, (map.get(word) || 0) + 1);
if (!memed.has(word) && map.get(word) === ans + 1) {
memed.add(word);
// console.log(word, map.get(word))
ans++;
}
}
console.log(ans);
}
}()