티스토리 뷰
Algorithm/Implementation
(Python) - 프로그래머스(2021 KAKAO BLIND RECRUITMENT) : 신규 아이디 추천
하눤석 2022. 1. 17. 12:30728x90
https://programmers.co.kr/learn/courses/30/lessons/72410
- 해설:
2020년도 카카오 블라인드 1차 코딩테스트 문제이다. 주어진 문자열을 1~7단계를 거쳐 최종적으로 신규 아이디를 추천하면 된다.
- 풀이:
정규표현식을 사용하면 쉽게 해결할 수 있는 문제이다. 정규표현식의 개념에 대한 이해가 부족해서 Python의 string을 다루는 방법으로 일일히 구현하였다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | def solution(new_id): answer = '' # 1단계 new_id = new_id.lower() # 2단계 nid = '' for value in new_id: if 97 <= ord(value) <= 122 or "0" <= value <= "9" or value == "-" or value == "_" or value == ".": nid += value # 3단계 flag = True new_id = '' for value in nid: if value == ".": if flag: new_id += value flag = False else: new_id += value flag = True # 4단계 if new_id: if new_id[0] == ".": if len(new_id) >= 2: new_id = new_id[1:] else: new_id = "" if new_id: if new_id[-1] == ".": if len(new_id) >= 2: new_id = new_id[:-1] else: new_id = "" # 5단계 if not new_id: new_id = "a" # 6단계 if len(new_id) >= 16: new_id = new_id[:15] if new_id[-1] == ".": new_id = new_id[:-1] # 7단계 if len(new_id) <= 2: while len(new_id) <= 2: new_id += new_id[-1] return new_id | cs |
320x100
'Algorithm > Implementation' 카테고리의 다른 글
(Python) - 프로그래머스 (2021 카카오 채용연계형 인턴쉽) : 숫자 문자열과 영단어 (0) | 2022.01.17 |
---|---|
(Python) - 프로그래머스(2019 KAKAO BLIND RECRUITMENT) : 오픈채팅방 (0) | 2022.01.17 |
(Python) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 문자열 압축 (0) | 2022.01.17 |
(Python) - 프로그래머스 : 로또의 최고 순위와 최저 순위 (0) | 2022.01.17 |
(Python) - 프로그래머스(2022 KAKAO BLIND RECRUITMENT) 1번 : 신고 결과 받기 (0) | 2022.01.17 |
댓글
© 2022 WonSeok, All rights reserved