반응형
이 문제는 16진수로 되어 있는 수를 모두 10진수로 변환시키고 N/4만큼만 회전시켜 풀어야 했던 문제입니다.
10진수로 변환시켜 계산한 수를 중복처리 하는 과정을 잘못하면 49/50으로 틀렸다고 나오는 문제였습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#include<iostream>
#include<deque>
#include<vector>
#include<algorithm>
#include<functional>
using namespace std;
int ans;
int N, K;
deque<int> dq;
vector<int> v;
int sum;
//N/4회전 은 같아짐으로 N/4만큼만 돌려주면됨
void init() {
ans = 0;
v.clear();
dq.pop_back();
}
void go(int end) {
dq.pop_front();
int ee = end; int check = end - 2;
while (ee--) {
int sum = 0;
int dq_end = dq.size();
for (register int i = 0; i < dq_end; i++) {
int c = dq.front();
dq.push_back(c);
dq.pop_front();
int num = 1;
if (check == 0) {
sum += c;
check = end - 2;
v.push_back(sum);
sum = 0;
continue;
}
for (register int j = check; j > 0; j--) {
num *= 16;
}
sum += (num*c);
check--;
}
//회전
if (ee > 1) {
dq.pop_back();
dq.push_front(a);
}
else continue;
}
sort(v.begin(), v.end(),greater<int>());
int chk = 1;
int cnt = 0;
for (int i = 0; i < v.size(); i++)
{
if (v[i] == chk)
continue;
chk = v[i];
cnt++;
if (cnt == K)
break;
}
ans = chk;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int T;
scanf("%d", &T);
//cin >> T;
for (register int t = 1; t <= T; t++) {
init();
scanf("%d %d", &N, &K);
//cin >> N >> K;
for (register int n = 0; n <= N; n++) {
char cc;
scanf("%c", &cc);
//cin >> cc;
if (cc >= 'A'&& cc <= 'F') {
dq.push_back(cc - 'A' + 10);
}
else {
dq.push_back(cc - '0');
}
}
int finsh = N / 4;
go(finsh + 1);
printf("#%d %d\n", t, ans);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
반응형
'알고리즘 문제풀기 > SWEA' 카테고리의 다른 글
[소프트웨어 익스퍼트 아카데미][SWEA][모의 SW 역량테스트][ C++][2382번] 미생물 격리 (0) | 2019.09.22 |
---|---|
[소프트웨어 익스퍼트 아카데미][SWEA][모의 SW 역량테스트][ C++][5648번] 원자 소멸 시뮬레이션 (0) | 2019.08.09 |
[소프트웨어 익스퍼트 아카데미][SWEA][모의 SW 역량테스트][ C++][5650번] 핀볼 게임 (0) | 2019.08.08 |
[소프트웨어 익스퍼트 아카데미][SWEA][모의 SW 역량테스트][ C++][5644번] 무선 충전 (0) | 2019.08.06 |
[소프트웨어 익스퍼트 아카데미][SWEA][모의 SW 역량테스트][ C++][5656번] 벽돌 깨기 (0) | 2019.08.05 |