알고리즘/백준
1181번 - 단어 정렬
배우고 성장하는 청년 블로그
2020. 8. 9. 11:46
출처: 백준 알고리즘
주소: www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
오늘도 어제와 이어서 정렬관련 문제를 풀었다.
단어를 정렬할 때 1. 길이가 짧을 것부터, 2. 사전 순으로 정렬을 한다.
정렬을 할 때 N^2인 것(버블 정렬, 선택 정렬, 삽입 정렬 등)으로 하면 시간이 오래 걸리기 때문에
보통 NlogN의 시간 복잡도를 가지는 퀵정렬, 합병정렬, 힙정렬을 이용한다.
그런데 퀵정렬은 잘못 사용하게 되면 N^2의 시간이 걸릴 수 있으므로, 나는 합병 정렬을 구현하여 사용하였다.
std::string 형의 저장된 값의 사이즈를 구하는 함수가 (string 변수).size로 구해야 하는 것을 알게 되었다.
sizeof로 구하게 되면 그 변수의 메모리 크기가 구해지게 된다.
자주 사용함수이지만 이름이 비슷해서 자주 헷갈리게 된다.