SRM304 DIV2
: area/2가 아니라, i*i<area로 하는게 맞았다. 굳이 vector로 넣을 필요없이 반복돌면서 나눠서 0이면 약수임.
class RugSizes
{
public:
int rugCount(int a)
{
VI p;
for(int i=2; i<= a/2; i++)
if( a % i == 0 ) p.pb(i);
int ret = 1, w, h;
REP(i, p.size())
{
w = p[i];
h = a / w;
if(h > w) continue;
if( w % 2 == 0 && h % 2 == 0 && w != h) continue;
ret++;
}
return ret;
}
};
SRM305 DIV2
: 무작정 코딩하다보면 경우의 수를 놓칠 수 있는 문제. 다시 풀어볼 것.
class MultiRead
{
public:
int minCycles(string t, int p)
{
int ret = 1, cnt = 1;
for(int i=1; i<t.size(); i++)
{
if( t[i-1] != t[i] || t[i] == 'W' || cnt == p)
{
cnt = 1;
ret++;
continue;
}
cnt++;
}
return ret;
}
};
SRM306 DIV2
: 좋은 문제. 나중에 다시 풀어볼 것.
class SortMachine
{
public:
int countMoves(vector <int> a)
{
VI so(a);
sort(ALL(so));
int index = 0;
REP(i, a.size())
if( a[i] == so[index]) index++;
return a.size() - index;
}
};
SRM307 DIV2
class BootsExchange
{
public:
int leastAmount(vector <int> l, vector <int> r)
{
for(int i=0; i<l.size(); i++ )
if(find(ALL(r), l[i]) != r.end())
r.erase(find(ALL(r), l[i]));
return r.size();
}
};
: area/2가 아니라, i*i<area로 하는게 맞았다. 굳이 vector로 넣을 필요없이 반복돌면서 나눠서 0이면 약수임.
class RugSizes
{
public:
int rugCount(int a)
{
VI p;
for(int i=2; i<= a/2; i++)
if( a % i == 0 ) p.pb(i);
int ret = 1, w, h;
REP(i, p.size())
{
w = p[i];
h = a / w;
if(h > w) continue;
if( w % 2 == 0 && h % 2 == 0 && w != h) continue;
ret++;
}
return ret;
}
};
SRM305 DIV2
: 무작정 코딩하다보면 경우의 수를 놓칠 수 있는 문제. 다시 풀어볼 것.
class MultiRead
{
public:
int minCycles(string t, int p)
{
int ret = 1, cnt = 1;
for(int i=1; i<t.size(); i++)
{
if( t[i-1] != t[i] || t[i] == 'W' || cnt == p)
{
cnt = 1;
ret++;
continue;
}
cnt++;
}
return ret;
}
};
SRM306 DIV2
: 좋은 문제. 나중에 다시 풀어볼 것.
class SortMachine
{
public:
int countMoves(vector <int> a)
{
VI so(a);
sort(ALL(so));
int index = 0;
REP(i, a.size())
if( a[i] == so[index]) index++;
return a.size() - index;
}
};
SRM307 DIV2
class BootsExchange
{
public:
int leastAmount(vector <int> l, vector <int> r)
{
for(int i=0; i<l.size(); i++ )
if(find(ALL(r), l[i]) != r.end())
r.erase(find(ALL(r), l[i]));
return r.size();
}
};
반응형