https://programmers.co.kr/learn/courses/30/lessons/72410?language=python3
코딩테스트 연습 - 신규 아이디 추천
카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로
programmers.co.kr
풀이 과정
정규표현식을 사용해서 풀라고 준 문제인 것 같지만 정규 표현식을 사용하지 않고 파이썬 내장 함수를 이용해서 해결하였다.
string.lower() => string내의 모든 대문자를 소문자로 바꿔준다.
string.islower() => string내의 모든 문자가 알파벳 소문자로 이루어져 있으면 True, 아니면 False를 반환한다.
string.isdigit() => string내의 모든 문자가 숫자로 이루어져 있으면 True, 아니면 False를 반환한다.
string.replace(문자열 1, 문자열 2) => string내의 모든 문자열 1을 문자열 2로 치환한다.
위의 4개의 함수를 사용해서 해결하였다.
소스 코드
def solution(new_id):
new_id = new_id.lower()
answer = ''
for id in new_id:
if id.islower() or id.isdigit() or id in '-_.':
answer += id
while '..' in answer:
answer = answer.replace('..', '.') # 여러개를 하나로 줄여나감
if len(answer) > 1:
if answer[0] == '.':
answer = answer[1:]
if answer[-1] == '.':
answer = answer[:-1]
else:
if answer[0] == '.':
answer = ''
if answer == '':
answer = 'a'
if len(answer) >= 16:
answer = answer[:15]
if answer[-1] == '.':
answer = answer[:-1]
while len(answer) <= 2:
answer += answer[-1]
return answer
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 음양 더하기 [파이썬] [자바스크립트] (0) | 2022.05.06 |
---|---|
프로그래머스 - 없는 숫자 더하기 [파이썬] [자바스크립트] (0) | 2022.05.06 |
프로그래머스 - 크레인 인형뽑기 게임 [파이썬] [자바스크립트] (0) | 2022.05.06 |
프로그래머스 - 키패드 누르기 [파이썬] [자바스크립트] (0) | 2022.05.06 |
프로그래머스 - 숫자 문자열과 영단어 [파이썬] (0) | 2022.05.06 |