๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ - 2021 KAKAO BLIND RECRUITMENT

๋ฟŒ์•ผ._. 2021. 1. 27. 23:00

<์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ>

 

๋ฌธ์ œ(์ถœ์ฒ˜: https://school.programmers.co.kr/learn/courses/30/lessons/72410)

 

 

๋ฌธ์ œ ํ’€์ด

   - my solution

def solution(new_id):
    answer = ''
    
    new_id=new_id.lower() #1๋‹จ๊ณ„
    
    new_id=list(new_id) #list๋กœ ๋ณ€ํ™˜
    
    i=0
    while(i<len(new_id)): #2๋‹จ๊ณ„
        x=new_id[i]
        if(x.isalpha() or x.isdigit() or x=='-' or x=='_' or x=='.'):
            i+=1
            pass
        else:
            del new_id[i]
    
    i=0
    if(len(new_id)!=0):
        while (i<len(new_id)-1): #3๋‹จ๊ณ„
            if(new_id[i]=="." and new_id[i]==new_id[i+1]):
                del new_id[i+1]
            else:
                i+=1
    
    #4๋‹จ๊ณ„
    if(len(new_id)!=0):
        if(new_id[0]=='.'):
            del new_id[0]
    if(len(new_id)!=0):
        if(new_id[-1]=='.'):
            del new_id[-1]
    
    #5๋‹จ๊ณ„
    if(len(new_id)==0):
        new_id.append("a")
    
    #6๋‹จ๊ณ„
    if(len(new_id)>=16):
        new_id=new_id[:15]
        if(new_id[-1]=='.'):
            del new_id[-1]
    
    #7๋‹จ๊ณ„
    while(len(new_id)<=2):
        new_id.append(new_id[-1])
        
    
    answer=''.join(new_id)
    return answer

  ๋ฌธ์ œ ๊ธธ์ด๋Š” ๊ธธ์ง€๋งŒ ์•„์ด๋”” ์ถ”์ฒœ ๋‹จ๊ณ„์— ๋งž์ถ”์–ด ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

    1๋‹จ๊ณ„ lower()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋Œ€๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ์น˜ํ™˜ ํ›„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด list๋กœ ๋ฐ”๊ฟˆ

    2๋‹จ๊ณ„ ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ์ˆซ์ž, ๋นผ๊ธฐ(-), ๋ฐ‘์ค„(_), ๋งˆ์นจํ‘œ(.)๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐ

    3๋‹จ๊ณ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ด ์•„๋‹ ๋•Œ ๋งˆ์นจํ‘œ๊ฐ€ 2๋ฒˆ ์ด์ƒ ์—ฐ์†๋œ ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜์—ฌ ํ•˜๋‚˜๋งŒ ๋‚จ๊ฒจ๋‘ 

    4๋‹จ๊ณ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ด ์•„๋‹ ๋•Œ ์ฒ˜์Œ์ด๋‚˜ ๋์— ๋งˆ์นจํ‘œ๊ฐ€ ์œ„์น˜ํ•œ๋‹ค๋ฉด ์ œ๊ฑฐ

    5๋‹จ๊ณ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ผ ๋•Œ a ๋Œ€์ž…

    6๋‹จ๊ณ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 16์ž ์ด์ƒ์ด๋ฉด 15์ž๊นŒ์ง€ ๋Š์€ ํ›„ ๋งˆ์ง€๋ง‰์— ๋งˆ์นจํ‘œ๊ฐ€ ์œ„์น˜ํ•˜๋ฉด ์ œ๊ฑฐ

    7๋‹จ๊ณ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 2์ž ์ดํ•˜์ผ ๋•Œ, ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ฅผ ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 3์ด ๋  ๋•Œ๊นŒ์ง€ ์ถ”๊ฐ€

 

  ์ฒ˜์Œ์— ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€์„ ๋•Œ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜์˜€๋‹ค.

  3๋‹จ๊ณ„, 4๋‹จ๊ณ„์—์„œ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ผ ๋•Œ์˜ ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ์ง€ ์•Š์•„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

  ๊ทธ๋ž˜์„œ ์กฐ๊ฑด๋ฌธ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.


์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges