반응형
728x170
문자열 처리의 정말 정석이 아닐까 싶다.
https://programmers.co.kr/learn/courses/30/lessons/72410?language=cpp
#맞은 풀이
#include<bits/stdc++.h>
using namespace std;
bool IsValidChar(char c){
if(isalnum(c))return true;
if(c == '-' || c == '_' || c == '.')return true;
return false;
}
string solution(string new_id) {
string answer = "";
//모든 문자열을 뒤짐.
for(auto c : new_id){
if(!IsValidChar(c))continue; //조건 2
c = tolower(c); //조건 1
//조건 4
if(answer.size() == 0 && c == '.')continue; //가장 처음에 오는 .은 삭제
//조건 3
if(answer.back() == '.' && c == '.')continue; //연속되는 .는 삭제
answer.push_back(c);
}
//조건 5
if(answer.size() == 0){
answer.push_back('a');
}
//조건 6
while(answer.size() >= 16){
answer.pop_back();
}
while(answer.back() == '.'){
answer.pop_back();
}
//조건 7
while(answer.size() <= 2){
char temp = answer.back();
answer.push_back(temp);
}
return answer;
}
실제로 조건대로 구현했다.
순서는 상관없었고
조건대로 구현했다.
728x90
반응형
그리드형
'문제풀이(Problem Solving)' 카테고리의 다른 글
프로그래머스 카카오, 괄호 변환 C++ [CPP] ★★★ (0) | 2022.05.11 |
---|---|
프로그래머스 카카오, 메뉴 리뉴얼 C++ [CPP] ★★★★★ (0) | 2022.05.08 |
프로그래머스 카카오, 신고 결과 받기 C++ [CPP] ★★ (0) | 2022.05.05 |
프로그래머스 카카오, k진수에서 소수 개수 구하기 C++ [CPP] ★★★★★(문자열처리) (0) | 2022.05.05 |
백준, BOJ, 16571번, 알파 틱택토 C++ [CPP] ★★★ (0) | 2022.05.03 |