티스토리 뷰
title: "단어 정렬(1181)"
category: 백준[Class-2]
tags: [C++, JavaScript, 백준]
date: "2021-03-19"
문제 링크
C++
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
bool cmp(string a, string b){
if(a.length()==b.length())
return a < b; // 사전 순
else
return a.length() < b.length(); // 길이 적은 것부터
}
// 문제 풀이 함수
void solution(){
int n;
cin >> n;
string str;
set<string> _set;
while(cin >> str){
_set.insert(str); // 중복 제거
}
vector<string> words(_set.begin(), _set.end());
// 정렬
stable_sort(words.begin(), words.end(), cmp);
for(string s: words){
cout<<s<<endl;
}
}
bool exists(const char* fileName){
FILE* fp;
if((fp = fopen(fileName, "r"))){
fclose(fp);
return true;
}
return false;
}
int main() {
if(exists("stdin")){
freopen("stdin", "r", stdin);
solution();
fclose(stdin);
}
else{
solution();
}
return 0;
}
JavsScript
const fs = require("fs");
// split 조절
const input = fs.readFileSync("dev/stdin").toString().trim().split("\n");
// 문제 풀이
const n = +input[0];
const _set = new Set();
for (let i = 1; i <= n; i++) {
_set.add(input[i]); // 중복 제거
}
const words = [..._set];
// 정렬
words.sort((a, b) => {
if (a.length === b.length) return a > b ? 1 : -1;
else return a.length > b.length ? 1 : -1;
});
words.forEach((v) => {
console.log(v);
});
728x90
반응형
'Baekjoon Solutions > Class-2' 카테고리의 다른 글
[백준] 최대공약수와 최소공배수(2609) (0) | 2021.03.19 |
---|---|
[백준] 영화감독 숌(1436) (0) | 2021.03.19 |
[백준] 체스판 다시 칠하기(1018) (0) | 2021.03.19 |
[백준] 달팽이는 올라가고 싶다(2869) (0) | 2021.03.18 |
[백준] 설탕 배달(2839) (0) | 2021.03.18 |
댓글