-코드
def solution(s):
r = ''
ok = '-_.'
s = s.lower()
for i in s:
if i.isalpha() or i.isdigit() or i in ok:
r += i
while '..' in r:
r = r.replace('..', '.')
if r[0] == '.':
if len(r) > 2:
r = r[1:]
if r[-1] == '.':
r = r[:-1]
if len(r) == 0:
r += 'a'
if len(r) >= 16:
r = r[:15]
if r[-1] == '.':
r = r[:-1]
while len(r) <= 2:
r += r[-1]
return r
처음에 코드를 짜다가 lower를 이상하게 써서 찾아서 해결을 하고 '.'이 연속으로 나올 때 바꿔주는 부분을 해결 못해서 찾아보니 replace를 사용하면 된다는 것을 알게 되었습니다. 그리고 len이 2 이하일 경우에도 r = r [1:0]이 실행되어서 인덱스 오류가 나서 해결을 하였습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[프로그래머스/파이썬] 숫자 문자열과 영단어 (0) | 2021.12.05 |
---|---|
[백준/파이썬] 1296번 팀 이름 정하기 (0) | 2021.12.05 |
[백준/파이썬] 15947번 아기 석환 뚜루루 뚜루 (0) | 2021.12.04 |
[백준/파이썬] 2193번 이친수 (0) | 2021.12.03 |
[백준/파이썬] 4134번 다음 소수 (0) | 2021.12.03 |