Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- dau 3만명
- langgraph
- 추천 검색 기능
- 완전탐색
- 크롤링
- 셀러리
- 관측가능성
- 쿠키
- docker
- 구현
- 결제서비스
- 몽고 인덱스
- 이분탐색
- 카카오
- spring event
- 누적합
- next-stock
- ipo 매매자동화
- ai agent
- 프로그래머스
- 알람시스템
- BFS
- piplining
- 디버깅
- 백준
- 베타적락
- JPA
- AWS
- gRPC
- 아키텍쳐 개선
Archives
- Today
- Total
코딩관계론
[프로그래머스] 신규 아이디 추천(python) 본문
반응형
풀이
연속된 문자열의 깔끔한 처리
코드
"연속된 문자를 복잡하게 처리하는 코드"
def get_rule2(id):
new_id = ""
for i in range(len(id)):
if not id[i].isalpha() and not id[i].isdigit():
if not id[i] in ['.', '-', '_']:
continue
new_id += id[i]
return new_id
def get_rule3(id):
new_id = ""
end = -1
for i in range(len(id)):
if not id[i].isalpha():
if id[i] == '.':
end = i
for j in range(i + 1, len(id)):
if id[j] != '.':
break
end = j
if end <= i:
new_id += id[i]
return new_id
def solution(new_id):
answer = new_id.lower()
new_id = new_id.lower()
new_id = get_rule2(new_id)
new_id = get_rule3(new_id)
new_id = new_id.lstrip('.')
new_id = new_id.rstrip('.')
if new_id == "":
new_id = 'a'
if 16 <= len(new_id):
new_id = new_id[0:15].rstrip(".")
while len(new_id) < 3:
new_id += new_id[-1]
return new_id
if __name__ == "__main__":
solution("123_.def")
"깔끔하게 처리한 코드"
def solution(new_id):
answer = ''
# 1
new_id = new_id.lower()
# 2
for c in new_id:
if c.isalpha() or c.isdigit() or c in ['-', '_', '.']:
answer += c
# 3
while '..' in answer:
answer = answer.replace('..', '.')
# 4
if answer[0] == '.':
answer = answer[1:] if len(answer) > 1 else '.'
if answer[-1] == '.':
answer = answer[:-1]
# 5
if answer == '':
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
소감
이런 문제는 구현이 귀찮아 진다. 그래서 풀고나면 다른 분들의 코드를 많이 참조하면서 배운다. 이번에도 연속된 '..' 을 재미나게 처리하는 방법을 배웠다. ".." in string -> string.replace(".")은 상당한 코드인듯하다.
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 순위 검색(python) (1) | 2022.10.31 |
---|---|
[프로그래머스] 메뉴리뉴얼(python) (3) | 2022.10.09 |
[프로그래머스] 파괴되지 않는 건물(python) (0) | 2022.10.03 |
[백준] 태상이의 훈련소 생활 (0) | 2022.10.02 |
[프로그래머스] 양과 늑대 풀이(python) (0) | 2022.10.01 |