728x90
728x170
벡터 내부의 중복된 문자 제거 방법
- 알고리즘 문제를 풀 때, 벡터 내부의 중복된 문자를 제거하고 싶을 때가 있다.
- 다음과 같이 간단하게 중복되는 문자를 공백(" ")으로 바꿔주고, 출력할 때 공백(" ")이 아닌 문자만 출력하도록 하는 방법을 사용할 수 있다.
#include <iostream>
#include <vector>
using namespace std;
int N;
string word;
vector<string> words;
int main() {
cin >> N;
for (int i = 0; i < N; i++) {
cin >> word;
words.push_back(word);
}
// 벡터 내의 중복된 단어 제거
for (int i = 0; i < words.size(); i++) {
for (int j = i + 1; j < words.size(); j++) {
if (words[i] == words[j]) { // 중복되는 단어가 있는 경우
words[j] = " "; // 두 번째 중복된 단어를 공백(" ")으로 바꾼다.
}
}
}
for (auto i : words) {
if (i != " ") { // 공백이 아닌 요소를 출력
cout << i << '\n';
}
}
return 0;
}
입력
4
somewhat
how
somewhat
elephant
출력
somewhat
how
elephant
728x90
그리드형(광고전용)
'Programming > C++' 카테고리의 다른 글
[C++] 동적 할당(Dynamic Allocation) 방법 (malloc, calloc, new) (0) | 2022.07.09 |
---|---|
[C++] 입력 함수 : cin(), getline() (and cin.ignore()) (0) | 2022.07.09 |
[C++] 범위 기반 for 문(Range-based for Statement) (0) | 2022.07.09 |
[C++] 자료형(Data Type) (0) | 2022.07.07 |
[C++] 이스케이프 시퀀스(Escape Sequence) (0) | 2022.07.07 |
[C++] 공백을 기준으로 문자열 나누기 (substr() 사용) (0) | 2021.10.31 |
[C++] std::unordered_map 에서 [] 연산자 (0) | 2021.05.28 |
main(int argc, char* argv[]) (0) | 2021.01.29 |