방명록
- LEVEL 1. 신규 아이디 추천2022년 09월 30일에 업로드 된 글입니다.
🟪 나의 구현 스케치
각 단계에 맞게 코드를 구현했다. 하지만 string out of range 오류가 발생했고 각 단계를 확인한 결과 4단계에서 빈 배열인 경우 범위를 벗어난다. 따라서 len(new_id) > 0 조건을 추가한다.
🟪 나의 구현 코드
def solution(new_id): answer = '' #1단계 new_id = new_id.lower() #2단계 for str in new_id: if str.isalpha() or str.isdigit(): continue elif str in "-_.": continue else: new_id = new_id.replace(str, "") #3단계 while '..' in new_id: 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 not new_id: new_id += "a" #6단계 if len(new_id) >= 16: new_id = new_id[0:15] if new_id[-1] == ".": new_id = new_id[0:14] #7단계 while len(new_id) < 3: new_id += new_id[-1] return new_id
🟪 다른 사람의 구현 코드
정규식으로 구현하는 방법이다. 정규식 사용법을 알아두면 좋을 것 같다.
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
https://sooh-official.tistory.com/150
크롤링을 위한 지식
1. 자주 사용되는 파이썬 문자열 함수 정리 - count() : 문자열에 있는 특정 문자 갯수 세기 - index() : 문자열에 있는 특정 문자의 첫 위치를 알려줌, 없는 문자면 error 발생함 - find() : 문자열에 있는
sooh-official.tistory.com
https://school.programmers.co.kr/learn/courses/30/lessons/72410
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'코딩테스트 > 🕊️프로그래머스' 카테고리의 다른 글
LEVEL 2. 예상 대진표 (0) 2025.01.13 LEVEL 2. 연속 부분 수열 합의 개수 (0) 2025.01.11 LEVEL 1. 완주하지 못한 선수 (2) 2022.09.30 LEVEL 1. 최소직사각형 (0) 2022.09.28 LEVEL 1. [1차] 비밀지도 (0) 2022.09.28 다음글이 없습니다.이전글이 없습니다.댓글