반응형
백준 링크
https://www.acmicpc.net/problem/1181
코드 풀이
- vector<string> 변수 선언 후 resize()
resize()하는 이유는 입력으로 주어진 N값이 고정되어 있기 때문(push_back()할때의 단점 해결) - 입력으로 주어진 단어를 vecString에 저장
- 정렬을 하는데 정렬 방식은 SortFunc함수 참고
- 출력 - 0번 인덱스의 값은 바로 출력 이후 인덱스의 값들은 이전 값과 비교 후 동일하다면 continue 다르다면 출력
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool SortFunc(const string& A, const string& B)
{
if (A.length() < B.length())
return true;
else if (A.length() == B.length())
{
size_t Size = A.length();
for (size_t i = 0; i < Size; ++i)
{
if (A[i] < B[i])
return true;
else if(A[i] > B[i])
return false;
}
}
else
return false;
return false;
}
int main()
{
int N;
cin >> N;
vector<string> vecString;
vecString.resize(N);
for (int i = 0; i < N; ++i)
{
string Word;
cin >> Word;
vecString[i] = Word;
}
sort(vecString.begin(), vecString.end(), SortFunc);
// 첫 인덱스 값은 바로 출력
cout << vecString[0] << '\n';
for (int i = 1; i < N; ++i)
{
// 이전 인덱스의 값이랑(문자열) 비교해서 같다면 출력x
if (vecString[i] == vecString[i - 1])
continue;
cout << vecString[i] << '\n';
}
}
반응형
'백준' 카테고리의 다른 글
백준 : 20183번 골목 대장 호석 - 효율성 2(c++)[부분성공] (0) | 2023.10.05 |
---|---|
백준 : 10814번 나이순 정렬(c++) (0) | 2023.09.28 |
백준 : 7795번 먹을 것인가 먹힐 것인가(c++) (0) | 2023.09.19 |
백준 : 15688번 수 정렬하기5 (c++) (0) | 2023.09.18 |
백준 : 1158번 요세푸스 문제 (c++) (0) | 2023.09.15 |
댓글