📄 문제
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
📝 풀이
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
string solution(string s) {
vector<pair<char, int>> characters;
for(int i = 0; i < s.size(); ++i)
{
bool imported = false;
for(int j = 0; j < characters.size(); ++j)
{
if(characters[j].first == s[i])
{
imported = true;
++characters[j].second;
}
}
if(!imported)
characters.push_back({s[i], 1});
}
string answer;
for(int i = 0; i < characters.size(); ++i)
{
if(characters[i].second == 1)
answer.push_back(characters[i].first);
}
sort(answer.begin(), answer.end());
return answer;
}
- pair<char, int>를 사용하여 각 문자가 몇번 사용되었는지 저장합니다.
- 저장한 후 검사하여 한번만 사용된 글자를 answer에 삽입한 후 내림차순으로 정렬합니다.
'algorithms (C++)' 카테고리의 다른 글
[C++][프로그래머스] 최빈값 구하기 (1) | 2023.10.22 |
---|---|
[C++][프로그래머스] 안전지대 (1) | 2023.10.22 |
[C++][프로그래머스] OX퀴즈 (1) | 2023.10.22 |
[C++][프로그래머스] 정수를 나선형으로 배치하기 (1) | 2023.10.22 |
[C++][프로그래머스] 배열의 원소 삭제하기 (0) | 2023.10.22 |