์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด/baekjoon

[๋ฐฑ์ค€] ๋‹จ์–ด์ •๋ ฌ 1181๋ฒˆ ๋ฌธ์ œํ’€์ด

mmin.h 2020. 8. 18. 10:00

https://www.acmicpc.net/problem/1181

 

1181๋ฒˆ: ๋‹จ์–ด ์ •๋ ฌ

์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1≤N≤20,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 50์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net

์•ˆ๋…•ํ•˜์„ธ์š” ์ฃผ์ธ์žฅ H์ž…๋‹ˆ๋‹ค. 

 

๋ฌธ์ œ

์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ N๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

  1. ๊ธธ์ด๊ฐ€ ์งง์€ ๊ฒƒ๋ถ€ํ„ฐ

  2. ๊ธธ์ด๊ฐ€ ๊ฐ™์œผ๋ฉด ์‚ฌ์ „ ์ˆœ์œผ๋กœ

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ 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';
	}
}