컴굥일지
[Programmers/프로그래머스][C++] 외톨이 알파벳 (PCCP 모의고사 1회 1번) 본문
반응형
문제
https://school.programmers.co.kr/learn/courses/15008/lessons/121683?language=cpp
문제 내용
소문자로만 이루어진 문자열에서, 2회 이상 나타난 알파벳이 2개 이상의 부분으로 나뉘어 있으면 "외톨이 알파벳"이라고 부른다.
입력받은 문자열에 대해, 외톨이 알파벳을 모두 구하여 사전순으로 출력하면 된다.
문제 풀이
문자열을 잘 처리해 주면 되는 문제이다.
코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string input_string) {
vector<int> position(26,-1); //-1로 초기화
vector<bool> alone(26,false);
bool flag =false;
for(int i=0;i<input_string.size();i++){
char ch=input_string[i];
if(position[ch-'a'] == -1 || position[ch-'a'] == i-1 ){ //새로 있거나 연결 된 경우
position[ch-'a'] = i;
}else{
alone[ch-'a']=true;
position[ch-'a'] = i;
flag=true;
}
}
if(!flag) return "N";
string answer = "";
for(int i=0;i<26;i++){
if(alone[i]) answer+=('a'+i);
}
return answer;
}
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[Programmers/프로그래머스][C++] 유전법칙 (PCCP 모의고사 1회 3번) (0) | 2023.08.19 |
---|---|
[Programmers/프로그래머스][C++] 체육대회 (PCCP 모의고사 1회 2번) (0) | 2023.08.19 |
[BOJ/백준 16234][C++] 인구 이동 (0) | 2023.08.17 |
[Programmers/프로그래머스 lv3][C++] 아이템 줍기 (0) | 2023.08.17 |
[BOJ/백준 15683][C++] 감시 (0) | 2023.08.16 |
Comments