Posts 백준 1181 단어 정렬 c++
Post
Cancel

백준 1181 단어 정렬 c++

문제

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

문제해설

그냥 단어를 정렬하는 문제이다.

  1. 길이가 짧은 것부터
  2. 길이가 같으면 사전 순으로

문제풀이

pair로 첫번째는 단어의 길이, 두번째는 단어자체를 배열에 저장하고
sort를 이용해 정렬하면 된다.
다만 중복되는 단어는 하나만 출력해야 하기 때문에
정렬된 배열을 한번 돌면서 같은게 있다면 단어 길이를 100으로 만들어서 출력할 때 건너뛰도록 했다.
최대로 올 수 있는 단어가 50자까지기 때문에 그런식으로 했다.

전체코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef pair<int, string>P;
vector<P>arr;

int main() {
    ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		string x;
		cin >> x;
		arr.push_back(P(x.length(), x));
	}
	sort(arr.begin(), arr.end());
	for (int i = 1; i < n; i++) {
		if (arr[i - 1].second == arr[i].second)
			arr[i].first = 100;
	}
	for (int i = 0; i < n; i++) {
		if (arr[i].first == 100)
			continue;
		cout << arr[i].second << "\n";
	}
}

SQL having과 where의 차이

백준 17176 암호해독기 c++

Comments powered by Disqus.