[プログラマー]新しいアイデンティティを推奨
🔗 レベル1:新規IDの推奨
[Solution] Askyコードの使用方法:ord()chr() 一般的な重複文字列除去方法(ステップ3) に詳しい
[Solution]
def solution(new_id):
# 1단계
id_1 = ''
for i in new_id:
if ord(i) >= 65 and ord(i) <= 90:
id_1 += chr(ord(i) + 32)
else:
id_1 += i
# print(id_1)
# 2단계
# '-'45, '_'95, '.'46, 소문자 97~122, 숫자 48~57
id_2 = ''
for i in id_1:
if ord(i) == 45 or ord(i) == 46 or ord(i) == 95 \
or (ord(i) >= 97 and ord(i) <= 122) or (ord(i) >= 48 and ord(i) <=57):
id_2 += i
# print(id_2)
# 3단계
def third(arr):
answer = arr[0]
dst = [arr[0]]
for i in range(1, len(arr)):
if dst[len(dst)-1] == arr[i] and ord(arr[i]) == 46:
continue
dst.append(arr[i])
answer += arr[i]
return answer
id_3 = third(id_2)
# print(id_3)
# 4단계
id_4 = ''
for i in range(len(id_3)):
if (i == 0 or i == len(id_3)-1) and ord(id_3[i]) == 46:
continue
id_4 += id_3[i]
# print(id_4)
# 5단계
if id_4 == '':
id_4 = 'a'
# print(id_4)
# 6단계
id_5 = ''
if len(id_4) >= 16:
id_5 = id_4[:15]
if id_5[len(id_5)-1] =='.':
id_5 = id_5[:-1]
else:
id_5 = id_4
# print(id_5)
# 7단계
answer = id_5
i = len(answer)
while i <= 2:
answer += answer[-1]
i += 1
# print(answer)
return answer
[Discussion]Reference
この問題について([プログラマー]新しいアイデンティティを推奨), 我々は、より多くの情報をここで見つけました https://velog.io/@duzzing/프로그래머스-신규-아이디-추천テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol