할머니의 콤퓨타 도전기
Programmers: 신규 아이디 추천 본문
programmers.co.kr/learn/courses/30/lessons/72410#
문제 풀이
- 문제 설명에 나와있는 단계별로 차근차근 구현하면 된다.
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
string solution(string new_id) {
string answer = "";
// step 1
for (char &c: new_id)
c = tolower(c);
// step 2
string tmp = "";
for (char c: new_id){
if((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '-' || c == '_' || c == '.')
tmp += c;
}
// step 3
for (int i=0; i<tmp.length(); i++){
answer += tmp[i];
if (tmp[i] == '.'){
while(tmp[i+1] == '.')
i++;
}
}
// step 4
if(answer.length() != 0 && answer[0] == '.')
answer = answer.substr(1, answer.length()-1);
if(answer.length() != 0 && answer[answer.length()-1] == '.')
answer = answer.substr(0, answer.length()-1);
// step 5
if(answer == "") answer += 'a';
// step 6
if(answer.length() >= 16){
answer = answer.substr(0,15);
if(answer[14] == '.')
answer = answer.substr(0,14);
}
// step 7
while(answer.length() < 3)
answer += answer[answer.length()-1];
return answer;
}
'Algorithm > Problem Solving' 카테고리의 다른 글
Python으로 백준 16987번을 풀어보자 (0) | 2021.06.23 |
---|---|
Javascript로 프로그래머스 해시 문제 풀기 (0) | 2021.06.22 |
Programmers: 추석 트래픽 (0) | 2021.04.28 |
Programmers: 크레인 인형뽑기 게임 (0) | 2021.04.27 |
Programmers: 모의고사 (0) | 2020.08.18 |
Comments