Coding

[Programmers] ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ

๋‚จ๋ฐ”์˜ค 2023. 4. 12. 12:27

https://school.programmers.co.kr/learn/courses/30/lessons/72410

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๋ฌธ์ œ ํ•ด๊ฒฐ

7๋‹จ๊ณ„๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ

์“ธ๋ฐ์—†์ด ์งง์€ ์ฝ”๋“œ์— ์š•์‹ฌ์žˆ์–ด์„œ ๋‹จ๊ณ„๋ฅผ ํ•ฉ์น  ์ˆ˜ ์—†๋‚˜ ์ƒ๊ฐํ–ˆ๋‹ค๊ฐ€ ๊ทธ๋ƒฅ ํ•œ ๊ฐœ์”ฉ ์ฒ˜๋ฆฌํ•˜๋‹ˆ๊นŒ ํŽธํ•ด์„œ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜๋‹ค.๐Ÿ˜‚

2๋‹จ๊ณ„ 3๋‹จ๊ณ„์—์„œ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ฌ ๋•Œ๋งŒ answer์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ ๊นŒ๋จน๊ณ  ์žˆ๋˜ ์Šคํ‚ฌ์ด ์ƒ๊ฐ๋‚˜์„œ ๋ฆฌ๋งˆ์ธ๋“œํ•˜๊ธฐ ์ข‹์•˜๋‹ค. ํ•œ ๊ธ€์ž์”ฉ ๋น„๊ต๋ฅผ ํ•˜์ง€๋งŒ ์ด์ „ ๊ธ€์ž๋ฅผ ๊ธฐ์–ตํ•˜๋ฉด์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ , ์•ž ๋’ค์— ๋งˆ์นจํ‘œ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ! (startswith, endswith ์ฒ˜์Œ ์จ๋ดค๋‹ค ใ…Žใ…Ž) ๋‚˜๋จธ์ง€๋Š” ์กฐ๊ฑด๋Œ€๋กœ ๊ตฌํ˜„๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ!!

 

์ธ๋ฑ์Šค๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์—ˆ๋Š”๋ฐ for๋ฌธ์„ ๋Œ๋ฆด ๋•Œ ์ˆซ์ž๋กœ ํ•  ๋• i๋กœ ํ•ด๋„ ์ƒ๊ด€์—†์ง€๋งŒ ๋ฌธ์ž์—ด๋กœ ์‹คํ–‰ํ•  ๋• char๋ฅผ ์“ด๋‹ค๋Š” ๊ฑธ ์ฒ˜์Œ ์•Œ์•˜๋‹ค. ๋ญ์ง€; ์ด์ œ๊นŒ์ง€ ๊ทธ๋ƒฅ ๊ฐ์œผ๋กœ ๋ฌธ์ž์—ด์€ char ์ˆซ์ž๋Š” i ๋กœ ํ–ˆ๋Š”๋ฐ ๊ทธ๊ฒŒ ๋‹ค ์ด์œ ๊ฐ€ ์žˆ๋Š” ๊ฑฐ์˜€๋‹ค๋‹ˆ,, ์ถฉ๊ฒฉ 

ํŒŒ์ด์ฌ์€ ๋”ฐ๋กœ ๊ณต๋ถ€ํ•œ ์ ์ด ์—†์–ด์„œ ๋ชจ๋ฅด๋Š” ํ•จ์ˆ˜๋„ ๋„ˆ๋ฌด ๋งŽ๋‹ค๐Ÿฅฒ

์ฝ”๋“œ

def solution(new_id):
    answer = ''
    #1๋‹จ๊ณ„
    new_id = new_id.lower()
    
    #2๋‹จ๊ณ„ & 3๋‹จ๊ณ„
    allowed_chars = set('abcdefghijklmnopqrstuvwxyz0123456789-_.')
    previous_char = ''
    
    for char in new_id:
        if char == '.' and previous_char == '.':
            continue
        if char not in allowed_chars:
            continue
            
        answer += char
        previous_char = char
        
    #4๋‹จ๊ณ„
    if answer.startswith('.'):
        answer = answer[1:]
    if answer.endswith('.'):
        answer = answer[:-1]

    #5๋‹จ๊ณ„
    if len(answer) == 0 :
        answer = 'a'
        
    #6๋‹จ๊ณ„
    if len(answer) > 15:
        answer = answer[:15]
        if answer.endswith('.'):
            answer = answer[:-1]
            
    #7๋‹จ๊ณ„
    if len(answer) < 3:
        while len(answer) <= 2:
            answer += answer[-1]
        
    return answer