본문 바로가기

Algorithm

7701. 염라대왕의 이름 정렬

반응형

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWqU0zh6rssDFARG&categoryId=AWqU0zh6rssDFARG&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

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