SRM297 DIV2
class PackingParts
{
public:
int pack(vector <int> p, vector <int> b)
{
int ret = 0;
for(int i=0, j=0; i < p.size() && j < b.size(); )
{
if(p[i] > b[j]) j++;
else
{
i++; j++; ret++;
}
}
return ret;
}
};
SRM298 DIV2
: 변환되는걸 일일이 나열하지 않고, 배열로 처리해 봤다. 이런 연습을 많이 해서 익숙해 질 필요가 있음.
class IndicatorMotion
{
public:
string getMotion(string p, char s)
{
char data[4] = {'\\', '|', '/', '-'};
int index = 0;
REP(i, 4)
if( s == data[i] ) index = i;
ostringstream out;
out << s;
istringstream in(p);
char instr;
int sec;
while( in >> instr >> sec)
{
REP(i, sec)
{
if(instr == 'L') index = (index+3)%4;
if(instr == 'R') index = (index+1)%4;
if(instr == 'F') index = (index+2)%4;
out << data[index];
}
}
string ret = out.str();
return ret;
}
};
SRM299 DIV2
: 일차 방정식 두개로 푸는 문제인데.. 식을 잘못써서 오래걸림;
class TemperatureScales
{
public:
double convert(int f1, int b1, int f2, int b2, int t)
{
return 1.0*(t-f1)*(f2-b2)/(f1-b1)+f2;
}
};
SRM300 DIV2
: 습관대로 (double)로 형변환 하지않고, 1.0을 곱했더니, int크기를 넘어버렸다;
항상 overflow가 되지 않는지 확인해야함..
class Taxi
{
public:
double maxDis(int X, int Y, int t)
{
if( t> X+Y) return -1;
if( max(X, Y) >= t) return t;
int max1 = max(X, Y);
int min1 = t - max1;
return sqrt((double)max1*max1+(double)min1*min1);
}
};
SRM301 DIV2
class InsertionSortCount
{
public:
int countMoves(vector <int> A)
{
int ret = 0;
VI s;
REP(i, A.size())
{
REP(j, s.size())
if(A[i] < s[j]) ret++;
s.pb(A[i]);
sort(ALL(s));
}
return ret;
}
};
SRM302 DIV2
: 소스가 좀 지저분하군;
class NounReform
{
public:
vector <string> makePlural(vector <string> a)
{
REP(i, a.size())
{
int n = a[i].size();
if( n == 1 && ( a[i][n-1] == 's' || a[i][n-1] == 'z' || a[i][n-1] == 'x'))
a[i] += "es";
else if( n > 1&& ( a[i][n-1] == 's' || a[i][n-1] == 'z' || a[i][n-1] == 'x' ||
(a[i][n-2] == 'c' && a[i][n-1] == 'h') || (a[i][n-2] == 's' && a[i][n-1] == 'h')))
a[i] += "es";
else if( n > 1 &&
( a[i][n-1] == 'y' &&
( a[i][n-2] == 'a'||a[i][n-2] == 'e'||a[i][n-2] == 'i'||a[i][n-2] == 'o'||a[i][n-2] == 'u')))
a[i] += "s";
else if(a[i][n-1] == 'y')
{
a[i][n-1] = 'i';
a[i] += "es";
}
else
a[i] += "s";
}
return a;
}
};
SRM303
: 대놓고 그냥 풀면. 복잡해진다. 간단히 짜는 솔루션 다시 짜 볼 것
반응형