티스토리 뷰

반응형

 

✏️ 문제 풀이


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

 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net

 

✏️ 문제 설명

 

 

✏️ 문제 풀이


정렬에 관한 문제입니다. 처음에 보시면 막막하실수도 있지만 헤더파일에 있는 sort함수를 이용하면 됩니다. sort함수에서 cmp함수부분을 조금만 수정하면 됩니다. cmp함수 안에서 1번 조건과 2번 조건을 차례로 써주시고 조건문에 맞게 값을 리턴해주시면 쉽게 풀 수 있습니다.

 

✏️ 문제 코드

#include<iostream>
#include<algorithm>

using namespace std;
int len;
string a[20000];
bool compare(string a, string b) {
	if (a.length() < b.length())
		return 1;
	else if (a.length() > b.length())
		return 0;
	else {
		return a < b;
	}
}
int main() {

	cin >> len;
	for (int x = 0; x < len; x++)
		cin >> a[x];
	sort(a, a + len, compare);
	for (int x = 0; x < len; x++) {
		if (x > 0 && a[x] == a[x - 1])
			continue;

		else
			cout << a[x] << endl;
	}

}

 

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 1193번 C++  (0) 2023.07.22
백준 1182번 C++  (0) 2023.07.22
백준 1158번 C++  (0) 2023.07.22
백준 1157번 C++  (0) 2023.07.21
백준 1152번 C++  (0) 2023.07.21
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
28 29 30 31
글 보관함