sm 기술 블로그
신규 아이디 추천(2021 KAKAO BLIND RECRUITMENT) - 파이썬 본문
import re
def step_1(id):
return id.lower()
def step_2(id):
return re.sub(r'[^0-9a-z-_.]', "", id)
def step_3(id):
while(id.find("..") != -1):
id = id.replace("..",".")
return id
def step_4(id):
if(id[0] == "."):
id = id[1:]
if(len(id) != 0 and id[-1] == "."):
id = id[:len(id)-1]
return id
def step_5(id):
if(len(id)==0):
id = "a"
return id
def step_6(id):
if(len(id)>=16):
id = id[:15]
id = step_4(id)
return id
def step_7(id):
while(len(id) <= 2):
id += id[-1]
return id
def solution(new_id):
answer = ''
answer = step_1(new_id)
answer = step_2(answer)
answer = step_3(answer)
answer = step_4(answer)
answer = step_5(answer)
answer = step_6(answer)
answer = step_7(answer)
return answer
문제요약
1~7단계에 맞는 조건으로 아이디를 추천하라
설명
문자열을 얼마나 잘 사용하는지에 대해서 물어보는 문제이다.
단계1
def step_1(id):
return id.lower()
대문자를 소문자로 바꾼다.
단계2
def step_2(id):
return re.sub(r'[^0-9a-z-_.]', "", id)
정규표현식을 사용하여 숫자, 소문자, -, _ , . 이 아닌 문자들은 다 제거한다.
단계3
def step_3(id):
while(id.find("..") != -1):
id = id.replace("..",".")
return id
연속해서 ..이 나온다면 .으로 변경하라 (..이 없을 때 까지 반복하면 됨)
단계4
def step_4(id):
if(id[0] == "."):
id = id[1:]
if(len(id) != 0 and id[-1] == "."):
id = id[:len(id)-1]
return id
처음 문자가 . 이거나 맨 뒤에 문자가 . 이면 잘라준다.
(맨뒤를 검사할 때 만약 문자열이 공백이면 에러가 발생하므로 공백이 아닌 경우에만 진행되게 조건을 추가한다.)
단계5
def step_5(id):
if(len(id)==0):
id = "a"
return id
문자열이 공백일 경우 a를 추가한다.
단계6
def step_6(id):
if(len(id)>=16):
id = id[:15]
id = step_4(id)
return id
문자열의 길이가 16이상일 경우 진행되며 자르는 과정이다.
문자열이 잘라진 후에 맨 뒤의 문자가 .일 수 있으므로 단계 4를 다시 진행한다.
단계7
def step_7(id):
while(len(id) <= 2):
id += id[-1]
return id
문자열의 길이가 2 이하일 경우 마지막 문자를 이어 붙여준다.
'문제 > 프로그래머스_파이썬' 카테고리의 다른 글
신고 결과 받기(2022 KAKAO BLIND RECRUITMENT) - 파이썬 (0) | 2022.10.08 |
---|---|
성격 유형 검사하기(2022 KAKAO TECH INTERNSHIP) - 파이썬 (1) | 2022.10.07 |
키패드 누르기(2020 카카오 인턴십) - 파이썬 (0) | 2022.10.05 |
크레인 인형뽑기 게임(2019 카카오 개발자 겨울 인턴십) - 파이썬 (0) | 2022.10.04 |
숫자 문자열과 영단어 (카카오 채용연계형 인턴십) - 파이썬 (0) | 2022.10.04 |
Comments