[TIL] 코딩테스트 연습 3일차
1) 숫자 문자열과 영단어
숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
def solution(s):
answer = s
dic = {'zero':0, 'one':1, 'two':2, 'three':3, 'four':4,
'five':5, 'six':6, 'seven':7, 'eight':8, 'nine':9}
for key, value in dic.items():
answer = answer.replace(key, str(value))
return int(answer)
2) 신규 아이디 추천
신규 유저가 입력한 아이디를 나타내는 new_id가 매개변수로 주어질 때, "네오"가 설계한 7단계의 처리 과정을 거친 후의 추천 아이디를 return 하도록 solution 함수를 완성해 주세요.
[7단계의 처리 과정]
1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다.
2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.
3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.
4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다.
6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다.
만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다.
7단계 new_id의 길이가 2자 이하라면, new_id의 마지막 문자를 new_id의 길이가 3이 될 때까지 반복해서 끝에 붙입니다.
import re
def solution(new_id):
answer = new_id
answer = answer.lower() # step1
answer = re.sub('[^a-z0-9\-_.]', '', answer) # step2
answer = re.sub('\.+', '.', answer) # step3
answer = re.sub('^[.]|[.]$', '', answer) # step4
if not answer :
answer += 'a' # step5
if len(answer) >= 16 :
if answer[14] == "." :
answer = answer[:14]
else :
answer = answer[:15] # step6
if len(answer) <= 2 :
s = answer[-1]
while len(answer) != 3 :
answer += s # step7
return answer
Author And Source
이 문제에 관하여([TIL] 코딩테스트 연습 3일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dauuuum/TIL-코딩테스트-연습-3일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)