๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[Python ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 2021 KAKAO BLIND RECRUITMENT > ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ

by Vada Kim 2021. 5. 3.
728x90
๋ฐ˜์‘ํ˜•

programmers.co.kr/learn/courses/30/lessons/72410

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ

์นด์นด์˜ค์— ์ž…์‚ฌํ•œ ์‹ ์ž… ๊ฐœ๋ฐœ์ž ๋„ค์˜ค๋Š” "์นด์นด์˜ค๊ณ„์ •๊ฐœ๋ฐœํŒ€"์— ๋ฐฐ์น˜๋˜์–ด, ์นด์นด์˜ค ์„œ๋น„์Šค์— ๊ฐ€์ž…ํ•˜๋Š” ์œ ์ €๋“ค์˜ ์•„์ด๋””๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—…๋ฌด๋ฅผ ๋‹ด๋‹นํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "๋„ค์˜ค"์—๊ฒŒ ์ฃผ์–ด์ง„ ์ฒซ ์—…๋ฌด๋Š” ์ƒˆ๋กœ

programmers.co.kr

*๋ฌธ์ œ ๋‚ด์šฉ์ด ๋งŽ์•„ ์ƒ๋žต

 

  • 1๋‹จ๊ณ„ new_id์˜ ๋ชจ๋“  ๋Œ€๋ฌธ์ž๋ฅผ ๋Œ€์‘๋˜๋Š” ์†Œ๋ฌธ์ž๋กœ ์น˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • 2๋‹จ๊ณ„ new_id์—์„œ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ์ˆซ์ž, ๋นผ๊ธฐ(-), ๋ฐ‘์ค„(_), ๋งˆ์นจํ‘œ(.)๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • 3๋‹จ๊ณ„ new_id์—์„œ ๋งˆ์นจํ‘œ(.)๊ฐ€ 2๋ฒˆ ์ด์ƒ ์—ฐ์†๋œ ๋ถ€๋ถ„์„ ํ•˜๋‚˜์˜ ๋งˆ์นจํ‘œ(.)๋กœ ์น˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • 4๋‹จ๊ณ„ new_id์—์„œ ๋งˆ์นจํ‘œ(.)๊ฐ€ ์ฒ˜์Œ์ด๋‚˜ ๋์— ์œ„์น˜ํ•œ๋‹ค๋ฉด ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • 5๋‹จ๊ณ„ new_id๊ฐ€ ๋นˆ ๋ฌธ์ž์—ด์ด๋ผ๋ฉด, new_id์— "a"๋ฅผ ๋Œ€์ž…ํ•ฉ๋‹ˆ๋‹ค.
  • 6๋‹จ๊ณ„ new_id์˜ ๊ธธ์ด๊ฐ€ 16์ž ์ด์ƒ์ด๋ฉด, new_id์˜ ์ฒซ 15๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฌธ์ž๋“ค์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ œ๊ฑฐ ํ›„ ๋งˆ์นจํ‘œ(.)๊ฐ€ new_id์˜ ๋์— ์œ„์น˜ํ•œ๋‹ค๋ฉด ๋์— ์œ„์น˜ํ•œ ๋งˆ์นจํ‘œ(.) ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • 7๋‹จ๊ณ„ new_id์˜ ๊ธธ์ด๊ฐ€ 2์ž ์ดํ•˜๋ผ๋ฉด, new_id์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ฅผ new_id์˜ ๊ธธ์ด๊ฐ€ 3์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์„œ ๋์— ๋ถ™์ž…๋‹ˆ๋‹ค.

 

 

๋ฌธ์ œ ํ•ด์„ค์ด ๊ธธ์–ด์„œ ๊ทธ๋ ‡์ง€ ์š”๊ตฌ์‚ฌํ•ญ๋Œ€๋กœ๋งŒ ์ฝ”๋”ฉํ•˜๋ฉด ๋˜๊ธฐ๋•Œ๋ฌธ์— ๋งŽ์ด ์–ด๋ ค์šด ๋ฌธ์ œ๋Š” ์•„๋‹ˆ๋‹ค.

ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ๋„ ์—†๋Š”์ง€๋ผ ํŽธํ•˜๊ฒŒ ํ’€๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

๋ฐ˜๋“œ์‹œ ์ˆœ์ฐจ์ ์œผ๋กœ ํ”„๋กœ์„ธ์‹ฑ ํ•ด์ฃผ๋Š” ๊ฑธ ์žŠ์œผ๋ฉด ์•ˆ๋จ!

def solution(new_id):
    answer = new_id[:]
    answer = answer.lower() #1๋‹จ๊ณ„:์†Œ๋ฌธ์ž์น˜ํ™˜
    #2๋‹จ๊ณ„
    answer = [ c for c in answer if c in '1234567890abcdefghijklmnopqrstuvwxyz-_.']
    newans = ''
    for i, c in enumerate(answer): #3๋‹จ๊ณ„:๋งˆ์นจํ‘œ์ค‘๋ณต์ œ๊ฑฐ
        if i > 0 and c=='.' and newans[-1] == '.': pass
        else: newans += c
    answer = list(newans) #to list
    
    #4๋‹จ๊ณ„
    if answer[0] =='.': del answer[0]
    if answer and answer[-1]=='.': del answer[-1]
    
    
    #5๋‹จ๊ณ„
    if not answer: answer.append('a')
    #6๋‹จ๊ณ„
    if len(answer) >=16:
        del answer[15:]
        if answer[-1]=='.': del answer[-1]
    #7๋‹จ๊ณ„
    result = ''.join(answer)
    if len(answer)<=2: result += result[-1]*(3-len(answer))
    
    return result
728x90
๋ฐ˜์‘ํ˜•