1181번 - 단어 정렬
s가 정렬된 vector<string>이라 할 때,
auto last = unique(s.begin(), s.end());
s.erase(last, s.end());
이 코드로 중복된 원소를 제거해주면 시간초과가 나오지 않고,
while(num--) //num은 받는 단어의 수임.
{
string k;
cin>>k;
bool checkover=true;
for(int i=0;i<s.size();i++)
if(s[i]==k)
checkover=false;
}
if(checkover)
s.push_back(k);
이 코드로 처음부터 중복을 검사해준다면 시간초과가 나옵니다. 왜 이럴까요?
댓글을 작성하려면 로그인해야 합니다.
alzee03 4년 전
s가 정렬된 vector<string>이라 할 때,
auto last = unique(s.begin(), s.end());
s.erase(last, s.end());
이 코드로 중복된 원소를 제거해주면 시간초과가 나오지 않고,
while(num--) //num은 받는 단어의 수임.
{
string k;
cin>>k;
bool checkover=true;
for(int i=0;i<s.size();i++)
{
if(s[i]==k)
checkover=false;
}
if(checkover)
s.push_back(k);
}
이 코드로 처음부터 중복을 검사해준다면 시간초과가 나옵니다. 왜 이럴까요?