코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 신규 아이디 추천
카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로
programmers.co.kr
구현 문제다. 좀 지저분한 구현 문제네
def validchar(c):
if ord(c) >= ord('a') and ord(c) <= ord('z'):
return True
if ord(c) >= ord('0') and ord(c) <= ord('9'):
return True
if c == '-' or c == '_' or c == '.':
return True
return False
def solution(new_id):
a = ''
for c in new_id.lower():
if validchar(c):
a += c
while '..' in a:
a = a.replace('..','.')
if a and a[0] == '.':
a = a[1:]
if a and a[-1] == '.':
a = a[:-1]
if not a:
a = 'a'
if len(a) >= 16:
a = a[:15]
if a[-1] == '.':
a = a[:-1]
while len(a) <= 2:
a += a[-1]
return a
ㅋㅋ 굵은글씨 친 부분은 편하게 날먹코딩하려고 쓴 부분인데 혹시나 저거땜에 시간복잡도 통과 못할까봐 조마조마 했다 ㅎㅎ.. 다행히 빡센 테스트케이스는 없었던듯.. 효율성 생각하면 저렇게 코딩하면 안된다.
이 문제는 정답률 57%로 소위 말하는 '공짜 문제'다. 틀리지 않도록 하자! 문제가 시키는대로만 하면 틀일일이 없지만..
'코딩 테스트 및 알고리즘 > 혼자서 이것저것 풀어보기' 카테고리의 다른 글
graycode 시퀀스 출력하기 (0) | 2022.03.26 |
---|---|
광고 삽입 (2021 카카오 기출) (0) | 2022.03.24 |
2019 카카오 기출 : 오픈채팅방 (0) | 2022.03.20 |
bisect_left, bisect_right 구현하기 (0) | 2022.03.20 |
퀵정렬 Quick sort 구현, 은근히 어렵다? (0) | 2022.03.03 |