๐Ÿ—๏ธ Algorithm/โฌ› ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Programmers] [2021 kakao blind recruitment] [Python] Level1_์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ

Dbswnstjd 2022. 2. 26. 23:37

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

 

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

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

programmers.co.kr

ํ’€์ด

def solution(new_id):
    # 1๋‹จ๊ณ„
    new_id = new_id.lower()
    # 2๋‹จ๊ณ„
    answer = ''
    for word in new_id:
        if word.isalnum() or word in '-_.':
            answer += word
    # 3๋‹จ๊ณ„
    while '..' in answer:
        answer = answer.replace('..', '.')
    # 4๋‹จ๊ณ„
    answer = answer[1:] if answer[0] == '.' and len(answer) > 1 else answer
    answer = answer[:-1] if answer[-1] == '.' else answer
    # 5๋‹จ๊ณ„
    answer = 'a' if answer == '' else answer
    # 6๋‹จ๊ณ„
    if len(answer) >= 16:
        answer = answer[:15]
        if answer[-1] == '.':
            answer = answer[:-1]
    # 7๋‹จ๊ณ„
    if len(answer) <= 3:
        answer = answer + answer[-1] * (3-len(answer))
    return answer

  • 1๋‹จ๊ณ„

upper() : ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฉ”์†Œ๋“œ

lower() : ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฉ”์†Œ๋“œ

์•„์ด๋””๋ฅผ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ

  • 2๋‹จ๊ณ„

isalnum() : ๋ฌธ์ž์—ด์ด ์•ŒํŒŒ๋ฒณ([a-zA-Z])๊ณผ ์ˆซ์ž([0-9])๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํŒŒ์ด์ฌ ๋ฌธ์ž์—ด ๋ฉ”์†Œ๋“œ

  • 3๋‹จ๊ณ„

replace('a', 'b') : a๋ฅผ b๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฉ”์†Œ๋“œ

'..'์ด ์—†์–ด์งˆ ๋•Œ ๊นŒ์ง€ '.'๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ

  • 4๋‹จ๊ณ„

answer[a:b] : a๋ถ€ํ„ฐ b-1 ๊นŒ์ง€ ์ž๋ฅด๋Š” ๋ฌธ์ž์—ด ์Šฌ๋ผ์ด์‹ฑ

์•„์ด๋””์˜ ์ฒ˜์Œ์ด๋‚˜ ๋งˆ์ง€๋ง‰์ด '.' ์ด๋ฉด ์ฒ˜์Œ์ด๋‚˜ ๋งˆ์ง€๋ง‰์— ์žˆ๋Š”'.' ์ œ๊ฑฐ

  • 5๋‹จ๊ณ„

์•„์ด๋””๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋ฉด 'a' ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ

  • 6๋‹จ๊ณ„

์•„์ด๋””์˜ ๊ธธ์ด๊ฐ€ 16์ด์ƒ์ด๋ฉด ์ฒซ 15๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฌธ์ž๋“ค์„ ๋ชจ๋‘ ์ œ๊ฑฐ

  • 7๋‹จ๊ณ„

์•„์ด๋””์˜ ๊ธธ์ด๊ฐ€ 2์ž๋ฆฌ ์ดํ•˜์ด๋ฉด ์•„์ด๋””์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ฅผ ์•„์ด๋””์˜ ๊ธธ์ด๊ฐ€ 3์ด ๋  ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์„œ ๋ฌธ์ž์—ด ์ถ”๊ฐ€