반응형
sort기준 정하고 풀면되는 간단한 문제인데, c++에서 cin,cout sync false하고 풀어도 시간초과 발생한다.
무조건 scanf ,printf로만 풀어야 하는 문제.
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char name[20000][51];
int idx[20000];
//문제 잘 안읽어서 삽질
bool cmp(int l, int r) {
if (strlen(name[l]) == strlen(name[r]))
return (strcmp(name[l], name[r]) < 0);
else return (strlen(name[l]) < strlen(name[r]));
}
int main() {
// freopen("input.txt", "r", stdin);
int T;
scanf("%d", &T);
for (int tc = 1; tc <= T; tc++) {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%s", name[i]), idx[i] = i;
sort(idx, idx + n, cmp);
printf("#%d\n", tc);
char none[51] = "";
char* before = none;
for (int i = 0; i < n; i++) {
if (strcmp(before, name[idx[i]])) {
printf("%s\n", name[idx[i]]);
before = name[idx[i]];
}
}
}
}
반응형
'Algorithm' 카테고리의 다른 글
7699. 수지의 수지 맞는 여행 (0) | 2020.05.04 |
---|---|
4366. 정식이의 은행업무 (0) | 2020.05.03 |
7829. 보물왕 태혁 (0) | 2020.05.01 |
1486. 장훈이의 높은 선반 (0) | 2020.04.30 |
백준 15686번 치킨배달 재풀이 (0) | 2020.04.30 |