카카오에서 나온 문제입니다. 난이도는 쉬운편으로 문제에 주어지는대로 구현을 하기만 하면 되는 문제였습니다. 크게 사용되는 기술은 없었고 정수인지 판별, 영어인지 판별, 공백제거, 문자 변환 등의 기능을 사용하여 구현했습니다.
def solution(new_id):
answer = '';
#1단계
new_id = new_id.lower();
print(new_id);
#2단계
allow = ["-","_","."];
arr = list(new_id);
new = "";
for i in range(len(arr)):
if not arr[i].isdigit() and not arr[i].isalpha():
if arr[i] not in allow:
continue;
else:
new += arr[i];
else:
new += arr[i];
new_id = new;
print(new_id);
#3단계
arr = new_id;
count = 0;
new = "";
for i in range(len(arr)):
if arr[i] == ".":
count += 1;
else:
if count != 0:
new += "."+arr[i];
count = 0;
else:
new += arr[i];
if count != 0:
new += ".";
new_id = new;
print(new_id);
#4단계
if len(new_id) != 0:
if new_id[0] == ".":
new_id = new_id[1:];
if len(new_id) != 0:
if new_id[-1] == ".":
new_id = new_id[:len(new_id)-1];
print(new_id);
#5단계
if new_id == "":
new_id = "a";
#6단계
if len(new_id) >= 16:
new_id = new_id[0:15];
if new_id[-1] == ".":
new_id = new_id[:len(new_id)-1];
#7단계
if len(new_id) <= 2:
while(len(new_id) != 3):
new_id += new_id[-1];
answer = new_id;
return answer;
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스] 숫자 문자열과 영단어, 자바 (0) | 2022.12.11 |
---|---|
[프로그래머스] 문자열 압축 파이썬 (0) | 2022.01.01 |
[프로그래머스] 완주하지 못한 선수 (java) (0) | 2020.12.22 |