반응형
귀찮지만 단계별로 하나씩 맞춰가면서 풀어간다.
#include <string>
#include <vector>
using namespace std;
string solution(string new_id) {
string answer1 = "";
string answer2 = "";
string answer3 = "";
string finalAnswer = "";
for(int i = 0; i< new_id.length(); i++){
// 1단계
if(new_id[i] >= 'A' && new_id[i] <= 'Z'){
new_id[i] += 32;
}
//2단계
if(new_id[i] == '-' || new_id[i] == '_' || new_id[i] == '.' ||
(new_id[i] >='0' && new_id[i] <='9') || (new_id[i] >='a' && new_id[i] <='z') ) {
answer1 += new_id[i];
}
}
//3단계
answer2 += answer1[0];
for(int i = 1; i < answer1.length(); i++){
if(answer1[i-1] != '.' || (answer1[i-1] =='.' && answer1[i] !='.'))
answer2 += answer1[i];
}
//4단계
if(answer2[0] =='.')
answer2.erase(0, 1);
if(answer2[answer2.length()-1] =='.')
answer2.erase(answer2.length()-1, 1);
//5단계
if(answer2 == "")
answer2 += 'a';
//6단계
if(answer2.length() > 15){
for(int i = 0; i<15; i++){
answer3 += answer2[i];
}
}else{
answer3 = answer2;
}
if(answer3[answer3.length()-1] =='.')
answer3.erase(answer3.length()-1, 1);
//7단계
if(answer3.length() <= 2){
char a = answer3[answer3.length()-1];
while(answer3.length() < 3){
answer3 += a;
}
}
finalAnswer = answer3;
return finalAnswer;
}
https://tech.kakao.com/2021/01/25/2021-kakao-recruitment-round-1/
반응형
'IT > 알고리즘' 카테고리의 다른 글
64★★★★] 카카오 블라인드 / 순위 검색 (0) | 2021.09.07 |
---|---|
62★★★] 카카오 블라인드 / 메뉴 리뉴얼 /C++ (0) | 2021.08.28 |
60] 프로그래머스 카펫 (0) | 2020.12.14 |
59★] 프로그래머스 전화번호 목록 (0) | 2020.11.19 |
58] 프로그래머스 주식가격 (0) | 2020.11.16 |
댓글