์๊ณ ๋ฆฌ์ฆ ํ์ด/baekjoon
[๋ฐฑ์ค] ๋จ์ด์ ๋ ฌ 1181๋ฒ ๋ฌธ์ ํ์ด
mmin.h
2020. 8. 18. 10:00
https://www.acmicpc.net/problem/1181
์๋ ํ์ธ์ ์ฃผ์ธ์ฅ H์ ๋๋ค.
๋ฌธ์
์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง N๊ฐ์ ๋จ์ด๊ฐ ๋ค์ด์ค๋ฉด ์๋์ ๊ฐ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
-
๊ธธ์ด๊ฐ ์งง์ ๊ฒ๋ถํฐ
-
๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด ์ฌ์ ์์ผ๋ก
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋จ์ด์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1≤N≤20,000) ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ 50์ ๋์ง ์๋๋ค
N์ ๊ฐฏ์๊ฐ 20,000์ด๋ฏ๋ก ํต์ ๋ ฌ์ ์ฌ์ฉํ์ฌ ์ ๋ฆฌํ๊ฒ ์ต๋๋ค.
sort()ํจ์๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
#include <iostream>
#include <algorithm>
using namespace std;
int number;
string a[20000];
//๊ธธ์ด๋น๊ตํ์ฌ ์ฐ์ ์์๋ฅผ ์ค๋๋ค.
bool compare(string a, string b) {
if (a.length() < b.length()) {
return 1;
}
else if (a.length() > b.length()) {
return 0;
}
//c++์ ๊ฒฝ์ฐ string์ ๋ถ๋ฑํธ ๋น๊ต์ ์ฌ์ ์์ผ๋ก ์์์ ๋น๊ตํด์ค๋๋ค.
else {
return a < b;
}
}
int main(void) {
cin >> number;
for (int i = 0; i < number; i++) {
cin >> a[i];
}
sort(a, a + number, compare);
for (int i = 0; i < number; i++) {
if (i > 0 && a[i] == a[i - 1]) continue;
cout << a[i] << '\n';
}
}