๐Ÿ“š Algorithm/๐Ÿ’ช๐Ÿป Python ๋ฌธ์ œ ํ’€์ด

[Python - ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Level2] JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ

yunakim2 2021. 6. 21. 15:50
๋ฐ˜์‘ํ˜•

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ

JadenCase๋ž€ ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ด๊ณ , ๊ทธ ์™ธ์˜ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, s๋ฅผ JadenCase๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์กฐ๊ฑด

programmers.co.kr

๋ฌธ์ œ ์„ค๋ช…

JadenCase๋ž€ ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ด๊ณ , ๊ทธ ์™ธ์˜ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, s๋ฅผ JadenCase๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • s๋Š” ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • s๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ ๊ณต๋ฐฑ๋ฌธ์ž(" ")๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฒซ ๋ฌธ์ž๊ฐ€ ์˜๋ฌธ์ด ์•„๋‹๋•Œ์—๋Š” ์ด์–ด์ง€๋Š” ์˜๋ฌธ์€ ์†Œ๋ฌธ์ž๋กœ ์”๋‹ˆ๋‹ค. ( ์ฒซ๋ฒˆ์งธ ์ž…์ถœ๋ ฅ ์˜ˆ ์ฐธ๊ณ  )

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

ํ’€์ด ๊ณผ์ •

๊ณต๋ฐฑ์ด ์—ฌ๋Ÿฌ๋ฒˆ ์ค‘๊ฐ„์— ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ์™€, ๋ฌธ์ž์—ด ์•ž๊ณผ ๋’ค์— ๊ณต๋ฐฑ์ด ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ๋ฅผ ์‹ ๊ฒฝ์จ์„œ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค.

replaceํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ' ' (๊ณต๋ฐฑ)์„ '-'๋กœ ๋ณ€ํ™˜ํ•œ๋’ค split ํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ๋‹ค์Œ์—๋Š” ๋‹จ์–ด์˜ ๋งจ ์•ž์€ ๋Œ€๋ฌธ์ž๋กœ, ๋‚˜๋จธ์ง€๋Š” ์†Œ๋ฌธ์ž๋กœ upper์™€ lower ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•ด์ฃผ์—ˆ๋‹ค.

def solution(s):
    s = s.replace(' ', '-')
    s = list(s.split('-'))
    for idx, item in enumerate(s):
        upper_str = ''
        if item == '':
            continue
        if item[0].isnumeric():
            upper_str = item[0]+ item[1:].lower()
            s[idx] = upper_str
            continue

        upper_str = item[0].upper() + item[1:].lower()
        s[idx] = upper_str

    return ' '.join(s)

 

๋ฐ˜์‘ํ˜•