반응형
안녕하세요~~!!ㅎㅎ
알고리즘을 공부하는 개발자 Henry입니다!
오늘은 프로그래머스의 "신규 아이디 추천" 이라는 문제를 풀어보았습니다!
2021 카카오 블라인드 채용 코딩테스트에 출제되었던 문제인데요,
카카오 치고는 쉬운 난이도여서 모두 어려움 없이 푸실 수 있었을 것 같습니다!
아래는 제가 문제를 푼 코드입니다.
def solution(new_id):
import re
answer = ''
new_id = new_id.lower() # 1 단계
new_id = re.sub(r"[^a-z0-9-_.]","",new_id) # 2 단계
while new_id.replace("..",".") != new_id:
new_id = new_id.replace("..",".") # 3 단계
# 4 단계
while len(new_id) > 0 and new_id[0] == ".":
new_id = new_id[1:]
while len(new_id) > 0 and new_id[-1] == ".":
new_id = new_id[:-1]
# 5 단계
if new_id == "":
new_id += "a"
# 6 단계
if len(new_id) >= 16:
new_id = new_id[:15]
while new_id[-1] == ".":
new_id = new_id[:-1]
# 7 단계
while len(new_id) < 3:
new_id += new_id[-1]
return new_id
문제에서 여러가지 단계를 나열해주고 있는데,
해당 단계들을 코드로만 정확하게 변환해주면 되는 쉬운 문제였습니다.
Level 1문제를 이렇게 큰 어려움 없이 풀 수 있는데,
아직 Level 2~3에는 관련 알고리즘 방법들을 빠르게 파악하는 것과,
정확한 알고리즘 원리를 이해하는 것이 선행되어야 할 것 같다는 생각을 하였습니다.
아래는 제가 문제를 설명한 영상입니다!
앞으로도 열심히 공부해야겠습니다!ㅎㅎ
다들 화이팅!
반응형
'프로그래머스' 카테고리의 다른 글
프로그래머스 '[카카오 인턴] 키패드 누르기 문제풀이 - Henry's Algorithm (0) | 2021.07.26 |
---|---|
프로그래머스 '폰켓몬' 문제풀이 - Henry's Algorithm (0) | 2021.07.18 |
프로그래머스 'N으로 표현' 문제풀이 - Henry's Algorithm (0) | 2021.07.10 |
프로그래머스 '문자열 압축' 문제풀이 - Henry's Algorithm (0) | 2021.01.10 |
프로그래머스 '나누어 떨어지는 숫자 배열' 문제풀이 - Henry's Algorithm (0) | 2020.11.13 |