코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 (programmers.co.kr)
어렵다
int variable is not iterable 오류가 뜨는데 왜 이러는거지?
def solution(new_id): answer = '' new_id = new_id.lower() if len(new_id) == 0: new_id == 'a' elif len(new_id) >= 16: new_id = new_id[0:16] for i in range(1, len(new_id)-1): if new_id[i].isalpha() or new_id[i].isdigit() or new_id[i] in ['-','_','.']: new_id = new_id[0:i] + new_id[i+1:] while True: if new_id.count('..') != 0: loca = new_id.find('..') #이게 8 8을 빼면 됨 new_id = new_id[:loca] + new_id[loca+1:] if new_id[0] == '.': new_id = new_id[1:] if new_id[-1] == '.': new_id = new_id[:-1] else: break if len(new_id) <= 2: new_id += str(new_id[-1]) * (3-len(new_id)) answer = new_id return answer new_id = "...!@BaT#*..y.abcdefghijklm" print(solution(new_id))
다시 처음부터 해보자!
def solution(new_id): new_id.lower() for i in range(len(new_id)): if new_id[i].isalpha(): pass elif new_id[i].isdigit(): pass elif new_id[i] in ['-', '_', '.']: pass else: #new = new_id[:i] + new_id[i+1:] new_id = new return new_id # 내가 입력한 곳에서 문자가 없으면 에러가 난다 #알파벳 소문자, 숫자, -, _, . 만 살리고 나머지 제거 # '...', '..' 등 -> .으로 치환 #.처음 /끝 -> 제거 # 빈 문자열 -> a 대입 # .가 끝에 위치하면, . 제거 # 16자 이상 -> 15개만 살리기 # 2자 이하 -> 마지막 문자 추가 new_id = 'abcde*$%..' for i in range(len(new_id)): if new_id[i].isalpha(): pass elif new_id[i].isdigit(): pass elif new_id[i] in ['-', '_', '.']: new = new_id[:i] + new_id[i+1:] print(new)
그래도.. 80점 만들었다.
def solution(new_id):
answer = ''
new_id = new_id.lower()
new_id = list(new_id)
i = 0
try:
while True:
if i >= len(new_id):
break
if new_id[i].isalnum() == True or new_id[i] in ['-', '_', '.']:
i += 1
continue
else:
del new_id[i]
j = 0
while True:
if j >= len(new_id)-2:
break
if new_id[j] == new_id[j+1] =='.':
del new_id[j]
else:
j += 1
continue
if new_id[0] == '.':
del new_id[0]
if new_id[-1] == '.': #여기서 문제가 생겼다.
del new_id[-1]
if new_id[0] == '.':
del new_id[0]
if new_id[-1] == '.':
del new_id[-1]
elif len(new_id) >= 16:
new_id = new_id[:15]
if new_id[-1] == '.':
del new_id[-1]
except:
if len(new_id) == 0:
new_id.append('a')
if len(new_id) <= 2:
for i in range(3 - len(new_id)):
new_id.append(new_id[-1])
answer = ''.join(new_id)
return answer
'Computer Science > 자료구조' 카테고리의 다른 글
[6.19] 프로그래머스 코딩테스트 연습 - 문자열 내 p와 y의 개수(18/100) (0) | 2021.06.19 |
---|---|
[6.19] 프로그래머스 코딩테스트 연습 - 완주하지 못한 선수(해시) (17/100) (0) | 2021.06.19 |
[6.11] 프로그래머스 코딩테스트 연습 - 가운데 글자 가져오기(16/100) (0) | 2021.06.11 |
[6.11] 프로그래머스 코딩테스트 연습 - 키패드 누르기 (15/100) (0) | 2021.06.10 |
[6.10] 프로그래머스 코딩테스트 연습 - 내적(14/100) (0) | 2021.06.10 |