배고픈 개발자 이야기

[2021 KAKAO BLIND] 신규 아이디 추천 본문

알고리즘 문제/PROGRAMMERS

[2021 KAKAO BLIND] 신규 아이디 추천

이융희 2021. 10. 7. 15:16
728x90

단순 구현 문제이다.

 

문제 지문에 맞게 코드를 구현하기만 하면 된다.

 

def solution(new_id):
    answer = ''

    for x in new_id:
      if x.isupper():
        answer += x.lower()
      else:
        answer += x
    answer, new_id = '', answer

    for x in new_id:
      if not 96 < ord(x) < 123:
        if not 47 < ord(x) < 58:
          if not ord(x) in [95, 45, 46]:
            continue
      answer += x
    answer, new_id = '', answer

    i = 0
    while i < len(new_id):
      answer += new_id[i]
      if ord(new_id[i]) == 46:
        i += 1
        if i >= len(new_id):
            break
        while ord(new_id[i]) == 46:
          i += 1
          if i >= len(new_id):
              break
        continue
      i += 1

    if ord(answer[0]) == 46:
      answer = answer[1:]
    if len(answer) != 0 and ord(answer[len(answer) - 1]) == 46:
      answer = answer[:len(answer)-1]
    if not answer:
      answer = 'a'

    if len(answer) >= 16:
      answer = answer[:15]
    if ord(answer[len(answer) - 1]) == 46:
      answer = answer[:len(answer)-1]
    while len(answer) < 3:
      answer += answer[len(answer)-1]

    return answer
Comments