[숫자 문자열과 영단어]-[2021 카카오 채용연계형 인턴십]
My answer
def solution(s):
code=["zero","one","two","three","four","five","six","seven","eight","nine"]
answer,tmp = "", ""
for i in range(len(s)):
if(s[i].isdigit()):
answer+=s[i]
else:
tmp+=s[i]
if(tmp!="" and tmp in code):
for i in range(len(code)):
if(tmp==code[i]):
answer+=str(i)
tmp=""
return int(answer)
Another answer
num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
def solution(s):
answer = s
for key, value in num_dic.items():
answer = answer.replace(key, value)
return int(answer)
[신규 아이디 추천]-[2021 KAKAO BLIND RECRUITMENT]
My answer
def solution(new_id):
answer = ''
#1단계-------------------------
new_id=new_id.lower()
#2단계-------------------------
for i in new_id:
if (i.isalnum()==0 and i!='-' and i!='_' and i!='.'):
new_id=new_id.replace(i,"")
#3단계-------------------------
for i in range(len(new_id)):
if(new_id[i].isalnum()==0 and i!=0 and new_id[i]=='.' and (new_id[i-1]=='.' or new_id[i-1]=='@')):
new_id=new_id[:i]+'@'+new_id[i+1:]
new_id=new_id.replace("@","")
#4단계--------------------------
if(len(new_id)!=0 and new_id[0]=='.'):
new_id=new_id[1:]
if(len(new_id)!=0 and new_id[-1]=='.'):
new_id=new_id[:-1]
#5단계--------------------------
if(new_id==""):
new_id='a'
#6단계--------------------------
if(len(new_id)>=16):
new_id=new_id[:15]
if(new_id[-1]=='.'):
new_id=new_id[:-1]
#7단계---------------------------
if(len(new_id)<=2):
while(len(new_id)<3):
new_id+=new_id[-1]
answer=new_id
return answer
Another answer
import re
def solution(new_id):
st = new_id
st = st.lower()
st = re.sub('[^a-z0-9\-_.]', '', st)
st = re.sub('\.+', '.', st)
st = re.sub('^[.]|[.]$', '', st)
st = 'a' if len(st) == 0 else st[:15]
st = re.sub('^[.]|[.]$', '', st)
st = st if len(st) > 2 else st + "".join([st[-1] for i in range(3-len(st))])
return st
더보기
isalnum()은 isalpha+isdigit를 한 것이다. 위 코드를 짜면서 다시 한번 배운것은 우선 replace랑 remove는 둘다 특정 인덱스의 값을 지울 수 없고, 전체 또는 맨앞의 것만 바꾼다. 따라서 문자열을 수정할 때는 신중하게 해야한다.
728x90
반응형
'코딩테스트 > 프로그래머스[Fail]' 카테고리의 다른 글
[프로그래머스] 10/05 (1) (0) | 2021.10.05 |
---|---|
[프로그래머스] 09/30 (1/3) (0) | 2021.09.30 |