320x100
https://school.programmers.co.kr/learn/courses/30/lessons/72410
단계별로 구현하면 어렵지 않은 문제.
- #1 : new_id = new_id.lower() (copy를 반환)
- #2 : isalnum() 으로 숫자 & 알파벳 check
- #3 : while, replace() 활용
- #4 : 앞뒤 '.' 제거할 때, len < 2일 경우 answer[1]에 대한 접근이 불가능하므로 길이 조건 추가.
def solution(new_id):
answer = ''
#1
new_id = new_id.lower()
#2
for alpha in new_id:
if alpha.isalnum() or alpha in '-_.':
answer += alpha
#3
while '..' in answer:
answer = answer.replace('..','.')
#4
if answer[0] == '.':
answer = answer[1:]
if len(answer) > 1 and answer[-1] == '.':
answer = answer[:-1]
#5
if len(answer) == 0:
answer = 'a'
#6
if len(answer) > 15:
answer = answer[:15]
if answer[-1] == '.':
answer = answer[:-1]
#7
while len(answer) < 3:
answer += answer[-1]
return answer
isalnum() 함수같은 내장 함수 알아두면 편할 것 같다.
- isdigit() : 숫자만 있으면 True
- isalpha() : 알파벳 문자만 있으면 True
- isupper() : 알파벳이 모두 대문자면 True
- islower() : 알파벳이 모두 소문자면 True
'코딩테스트' 카테고리의 다른 글
[파이썬] 음양 더하기 - 월간 코드 챌린지 시즌2 [CODING TEST #12] (0) | 2022.07.21 |
---|---|
[파이썬] 부족한 금액 계산하기 - 위클리 챌린지 [CODING TEST #11] (0) | 2022.07.21 |
[파이썬] 키패드 누르기 - 2020 카카오 인턴십 [CODING TEST #9] (0) | 2022.07.20 |
[파이썬] 체육복 [CODING TEST #8] (0) | 2022.07.20 |
[파이썬] 모의고사 [CODING TEST #7] (0) | 2022.07.20 |
댓글