topcoder 18

[Topcoder] SRM416

어제 저녁 8시에 있었던 매치.. 1번은 그럭저럭 풀었고, 2번문제로 고심하다가 마감 5분인가 남기고 제출했다. 그런데, 쉬는 시간에 2번문제를 949209942라는 좀 큰수로 테스트해보니, 실패로 나왔다;; 그렇게 Challenge Time이 왔는데, 내가 실패한 경우에 대해 다른 사람들을 challenge해봤다. 그런데, 이게 왠일인가.. challenge하는 족족이 떨어져 나가는 것이 아닌가..ㅎㅎ; 대충 소스보고, 소스가 지나치게 길거나, 난잡하면 무조건 challenge했다. 성공률이 워낙 잘나와서, 2번문제를 모든사람 다 challenge해봤더니 8명 성공, 3명 실패..ㅎㅎ 3명은 나중에 system test에서도 통과한 사람들.. 내가 우연히 테스트한 숫자가 잘 먹혀들어간거 같다.. 운이 ..

[Topcoder] SRM173 ~ 180연습

SRM173 DIV2 : 코딩속도를 높이기 위해서 REP 를 define하고 쓰는 연습을 해봤다. #define REP(I,N) for(int I=0;I 32 || abs(rgb[2] - b) > 32 ) { ret.pb(r); ret.pb(g); ret.pb(b); } else { REP(i,3) { if(rgb[i] - 128 >= 0) ret.pb(rgb[i] - 128); else ret.pb( rgb[i]+128 ); } } return ret; } }; SRM177 DIV2 : 다른사람들 경우 이중 for문을 돌렸으나, 나는 o(n)이니 좀더 나은건가..ㅎㅎ; class Stairs { public: int designs(int m1, int m2, int h, int w) { int ret ..

Problem Solving 2008.09.04

[Topcoder] SRM165 ~ 172연습

SRM165 DIV2 : 쉬운 문제.. class BritishCoins { public: vector coins(int pence) { vector ret; int pound = pence / 240; int s = (pence - pound*240) / 12; int p = pence % 12; ret.pb(pound); ret.pb(s); ret.pb(p); return ret; } }; SRM166 DIV2 : easy문제치고는 괜찮은 문제인듯. i, j, k에 대해 p[i] + p[j] > p[k]만 비교하면 되는데, 3가지 다 계산을 해줬다. 좀더 short code로 짤 수 있도록 사고의 연습이 필요함. class Workshop { public: int pictureFrames(vector..

Problem Solving 2008.09.03

[Topcoder] SRM151 ~ 158 연습

SRM151 DIV2 허프만 트리에 대한 개념을 알고 있어서 그런지 문제이해가 빨랐던 문제.. #define pb push_back using namespace std; class PrefixCode { public: string isOne(vector words) { string ret; string w; int find_index = -1; for(int i=0; i< words.size() && find_index == -1; i++) { w = words[i]; for(int j=0; j< words.size() && find_index == -1; j++) { if(i == j) continue; for(int length=1; length t; return t; } string toStr(in..

Problem Solving 2008.09.01

[Topcoder] SRM 144 ~ 150 연습

Topcode연습할겸 예전 easy문제부터 풀어보기로 했다. 오늘은 144부터 150까지 풀어봄 SRM 144 DIV2 : 문제는 간단하고, C++에서 int 를 string으로 할당하는 부분만 주의 #include #include #include #include #include #include #include using namespace std; class Time { public: string whatTime(int seconds) { int s = seconds % 60; int total_min = seconds / 60; int m = total_min % 60; int h = total_min / 60; char buf[10]; sprintf( buf, "%d:%d:%d", s, m, h); ..

Problem Solving 2008.08.29

[Topcoder] SRM 415

오늘 아침 10시에 있었던 매치.. 두번째 해보는 매치였는데..완전 망했다. ㅋㅋ 회사에서 하느라 여기저기 전화받는 소리에, 가끔씩 말거는 상사분에.. 이리저리 좀 방해요소도 좀 있었고.. 무엇보다 문제내용 자체가 심플하다보니 바로 막코딩한게 실수였던거 같다. 솔루션을 vector에서 큰값을 하나씩 빼면서, 가능한 개수를 계산하는 식으로 로직을 구현하다보니.. 좀 복잡해졌다. 결국 한문제도 못풀고. 매치마감;; 점심식사하고 올라와서 그래도 문제는 풀고, 딴사람들 푼거 봐야지 하고 다시 문제를 가만 생각해봤다. 솔루션은 가진 우표를 모두 팔아서, 금액을 확보한 후에 싼 순으로 구매하면 되는거였다... 솔루션을 간단하게 하고나니 실제 코딩은 10분도 안걸렸다. 매치마감시에만 해도 STL이나 코딩연습부족으로 ..

[Topcoder] SRM 413

오늘 새벽 0시에 Topcoder 를 드디어 시작했다. Topcoder를 위해 C++ 서적을 뒤벼서 문법이나 STL을 1주일간 공부하고 참여했던만큼 의미가 남달랐다. ㅎㅎ C++을 대학 졸업하고부터 거의 코딩한 적이 없었기 때문에 책을 보면서 생소하게 느껴지는 부분도 좀 있었다. 특히 그동안 몇가지 문제들을 C로 직접 Linked List같은 걸 구현해가며 풀었었는데, STL을 보고 나서는 입이 딱 벌어지는 느낌이었다. STL이나 boost나 이런 좋은 라이브러리들이 있는데.. 아직도 C로만 짜고 있는 우리회사 기술력이 한심하게 느껴지는 순간이었다. C++을 제대로 공부해보고자 Effective시리즈 책들도 주문해서 책장에 꽂아놨다. ㅡㅡㅋ; Topcoder 문제를 어제 오후에 몇개 풀어봤는데, Div2..

반응형