2012/01/15 12:27
엄청 오랜만에 참가한듯..~
250 대충 빨리 푸니깐 rating 오를꺼같아서.. 나머지는 그냥 접었다.. 챌도 시도했으면 좋은 결과가 있었을텐데..
어쨋든 rating 은 좀 올라서 다시 Yellow 복귀!!!!
아.. 새벽 2시 매치는 너무 힘들어.. ㅠㅠ
Level1 - KingSort
이름을 Sorting 하는 문제..
이문제의 핵심은 Roman digit을 아라비아 숫자로 변환하는데 있다.. 예전에 짜둔게 있어서 그냥 복.붙 했는데..
30% unused 어쩌구 warning 이 나서 한참 삽질했다.. -_-
line 84 를 넣으니깐 warning 이 사라짐.. 이것땜에 시간 엄청 까먹음..
Level3 - BigAndSmallAirports
xx
250 대충 빨리 푸니깐 rating 오를꺼같아서.. 나머지는 그냥 접었다.. 챌도 시도했으면 좋은 결과가 있었을텐데..
어쨋든 rating 은 좀 올라서 다시 Yellow 복귀!!!!
아.. 새벽 2시 매치는 너무 힘들어.. ㅠㅠ
Level1 - KingSort
더보기
이름을 Sorting 하는 문제..
이문제의 핵심은 Roman digit을 아라비아 숫자로 변환하는데 있다.. 예전에 짜둔게 있어서 그냥 복.붙 했는데..
30% unused 어쩌구 warning 이 나서 한참 삽질했다.. -_-
line 84 를 넣으니깐 warning 이 사라짐.. 이것땜에 시간 엄청 까먹음..
1 #include <iostream>
2 #include <cstdio>
3 #include <algorithm>
4 #include <vector>
5 #include <string>
6 using namespace std;
7 //#define min(x, y) ((x) > (y) ? (y) : (x))
8 //#define max(x, y) ((x) > (y) ? (x) : (y))
9 //#define INF 999999999
10 //#define EPS 1e-14
11
12 typedef struct _n {
13 char name[100];
14 char no[100];
15 int val;
16 } NAME;
17 NAME king[55];
18 int n;
19 int to_arab(char* buf)
20 {
21 int len, sum, temp, i;
22 char ch;
23 len = strlen(buf);
24 sum = 0;
25 for (i = 0; i < len; i++) {
26 ch = buf[i];
27 if (ch == 'L') {
28 sum += 50;
29 }
30 else if (ch == 'X') {
31 temp = 0;
32 for ( ; i < len && buf[i] == 'X'; i++) {
33 temp += 10;
34 }
35 if (buf[i] == 'L' || buf[i] == 'C')
36 sum -= temp;
37 else
38 sum += temp;
39 i--;
40 }
41 else if (ch == 'V') {
42 sum += 5;
43 }
44 else {
45 temp = 0;
46 for ( ; i < len && buf[i] == 'I'; i++) {
47 temp += 1;
48 }
49 if (buf[i] == 'V' || buf[i] == 'X')
50 sum -= temp;
51 else
52 sum += temp;
53 i--;
54 }
55 }
56 return sum;
57 }
58
59
60 int comp(const void* x, const void* y)
61 {
62 int val1, val2;
63 NAME* a = (NAME*)x;
64 NAME* b = (NAME*)y;
65 if (strcmp(a->name, b->name) != 0) {
66 return strcmp(a->name, b->name);
67 }
68 val1 = to_arab(a->no);
69 val2 = to_arab(b->no);
70 return val1 - val2;
71 }
72
73 class KingSort {
74 public:
75
76 vector <string> getSortedList(vector <string> kings)
77 {
78 int i;
79 string temp;
80 vector<string> res;
81 n = kings.size();
82 for (i = 0; i < n; i++) {
83 sscanf(kings[i].c_str(), "%s%s", king[i].name, king[i].no);
84 king[i].val = to_arab(king[i].no);
85 }
86 qsort(king, n, sizeof(NAME), comp);
87 for (i = 0; i < n; i++) {
88 temp = king[i].name;
89 temp = temp + " ";
90 temp = temp + king[i].no;
91 res.push_back(temp);
92 }
93 return res;
94 }
95
96 };
Level3 - BigAndSmallAirports
더보기
xx
'Problem Solving > TopCoder logs' 카테고리의 다른 글
| SRM 529 (0) | 2012/01/15 |
|---|---|
| SRM 521 (0) | 2011/10/24 |
| SRM 511 (0) | 2011/07/04 |
| TCO11 R1 - 탈락 (0) | 2011/06/23 |
| SRM 509 !! (0) | 2011/06/09 |
| SRM 507 - 나이스! (0) | 2011/05/30 |



