티스토리 뷰
title: "신규 아이디 추천"
category: 프로그래머스[Level-1]
tags: [C++, JavaScript, 프로그래머스]
date: "2021-02-06"
문제 링크
C++
#include <string>
#include <vector>
using namespace std;
string solution(string new_id) {
string answer = "";
// 1단계
string id1="";
for(char ch: new_id) id1+=tolower(ch);
// 2단계
string id2="";
for(char ch: id1){
if(ch>='0'&&ch<='9') id2+=ch;
else if(ch>='a'&&ch<='z') id2+=ch;
else if(ch=='-'||ch=='_'|ch=='.') id2+=ch;
}
// 3단계
string id3="";
for(char ch: id2){
if(ch=='.'&&id3.back()=='.') continue;
id3+=ch;
}
// 4단계
string id4(id3);
while(id4.front()=='.') id4=id4.substr(1);
while(id4.back()=='.') id4.pop_back();
// 5단계
string id5=(id4=="")?"a":id4;
// 6단계
string id6=id5.substr(0, 15);
while(id6.back()=='.') id6.pop_back();
// 7단계
string id7(id6);
while(id7.length()<3) id7+=id7.back();
// 대입
answer=id7;
return answer;
}
JavaScript
function solution(new_id) {
var answer = "";
answer = new_id
.toLowerCase() // 1단계
.replace(/[^a-z-_.0-9]/g, "") // 2단계
.replace(/[.]+/g, ".") // 3단계
.replace(/^[.]|[.]$/, "") // 4단계
.replace(/^$/, "a") // 5단계
.slice(0, 15) // 6.1단계
.replace(/[.]$/, ""); // 6.2단계
while (answer.length < 3) {
answer += answer[answer.length - 1]; // 7단계
}
return answer;
}
728x90
반응형
'Programmers Solutions > Level-1' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈 (0) | 2021.06.11 |
---|---|
[프로그래머스] 음양 더하기 (0) | 2021.04.17 |
[프로그래머스] 최대공약수와 최소공배수 (0) | 2021.02.03 |
[프로그래머스] 콜라츠 추측 (0) | 2021.02.03 |
[프로그래머스] 평균 구하기 (0) | 2021.02.03 |
댓글