SRM 149 DIV2
: 전에 C++로 짤 때는 크기별로 분기로 처리했었네;
class FormatAmt
{
public String amount(int d, int c)
{
String ret = "";
int m = d;
while(true)
{
if( m / 1000 == 0)
{
ret = (m % 1000) + ret;
break;
}
else
{
String s = String.valueOf(m % 1000);
while( s.length() < 3) s = "0"+s;
ret = ","+ s + ret;
m = m / 1000;
}
}
String str = "$" + ret + ".";
if( c > 9) str += c;
else str = str + "0" + c;
return str;
}
}
SRM 150 DIV2
: 예전과 똑같이 풀었네.. 마지막날 남은일 계산을 (remain + n -1) / n 와 같이 짤 수 있도록
class WidgetRepairs
{
public int days(int[] a, int n)
{
int ret = 0;
int remain = 0;
for(int i = 0; i < a.length; i++)
{
remain += a[i];
if( remain > 0 ) ret++;
remain -= n;
if(remain < 0) remain = 0;
}
while( remain > 0 )
{
ret++;
remain -= n;
}
return ret;
}
}
SRM 151 DIV2
: 문제해석이 좀 걸렸다. 예전에는 허프만알고리즘을 최근에 읽어서 바로 풀었던거 같은데;
역시 알고리즘 책을 자주 봐야..
class PrefixCode
{
public String isOne(String[] w)
{
for(int i=0; i< w.length; i++)
{
String w1 = w[i];
for(int j=0; j < w.length; j++)
{
if( i == j ) continue;
if( w[j].startsWith(w1) )
{
return "No, "+ i;
}
}
}
return "Yes";
}
}
반응형