๐Ÿงฉ Algorithm/[Programmers] Level 2

[Programmers] L2. JadenCase ๋ฌธ์ž์—ด ๋งŒ๋“ค๊ธฐ (Python)

devCloud 2024. 11. 8. 20:01
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‡

 

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

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr


ํ’€์ด ๋ฐฉ๋ฒ•

๐Ÿ“Œ์ฃผ์˜ํ•  ์  : ๊ณต๋ฐฑ์ด ์—ฌ๋Ÿฌ๊ฐœ ์ผ ๋•Œ

 

1๏ธโƒฃ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ split(' ')๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ ๋‹จ์–ด์™€ ๊ณต๋ฐฑ์„ ์œ ์ง€ํ•œ ์ฑ„ ๋ฆฌ์ŠคํŠธ์— ๋‹ด๋Š”๋‹ค.

 

2๏ธโƒฃ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ๋‹จ์–ด๋ฅผ ํ™•์ธํ•˜๋ฉด์„œ,

  • ๋‹จ์–ด๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์ฒซ ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • ์ฒซ ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋Š” ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค.

3๏ธโƒฃ ๋ณ€ํ™˜๋œ ๋‹จ์–ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด๋กœ ํ•ฉ์ณ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

s.upper()

 

์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

s.lower()

 

Solution

def solution(s):
    words = s.split(' ')  # ๊ณต๋ฐฑ ํฌํ•จํ•ด์„œ ๋‚˜๋ˆ„๊ธฐ
    jaden_case_words = []
    
    for word in words:
        # ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž ๋Œ€๋ฌธ์ž, ๋‚˜๋จธ์ง€๋Š” ์†Œ๋ฌธ์ž๋กœ
        if len(word) > 0:
            jaden_case_words.append(word[0].upper() + word[1:].lower())
        else:
            jaden_case_words.append(word)  # ๊ณต๋ฐฑ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๊ทธ๋Œ€๋กœ ์ถ”๊ฐ€
    
    return ' '.join(jaden_case_words)

 

๋‹ค๋ฅธ ํ’€์ด

def solution(s):
    return ' '.join([word.capitalize() for word in s.split(" ")])

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ 

๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ธ๋ฐ,, ์ œ๋Œ€๋กœ ๋ชป ํ’€์—ˆ๋‹ค. ์™œ ํ‹€๋ ธ๋Š”์ง€ ํ•œ์ฐธ๋™์•ˆ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ, ๊ณต๋ฐฑ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ํ’€์—ˆ์—ˆ๋‹ค. 

def solution(s):
    answer = ''
    for i in s.split():  # ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•œ ๋ฌธ์ž์—ด
        #if i[0].isalpha():  # ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ์ผ ๊ฒฝ์šฐ
        answer += i[0].replace(i[0], i[0].upper())  # ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜
        answer += i[1:].replace(i[1:], i[1:].lower()) + " "  # ์ฒซ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
    return answer.rstrip()  # ๋งจ ๋’ค ๊ณต๋ฐฑ์€ ์ œ๊ฑฐ

 

๋ฐ˜๋ก€ ์ผ€์ด์Šค

# 1. ์—ฐ์†๋œ ๊ณต๋ฐฑ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ
print(solution("3people   unFollowed me"))  # "3people   Unfollowed Me"
# 2. ๋ฌธ์ž์—ด ์‹œ์ž‘๊ณผ ๋์— ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ
print(solution("   hello world   "))  # "   Hello World   "
# 3. ๊ณต๋ฐฑ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ
print(solution("    "))  # "    "

 

title()

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด ๋ณด๋‹ˆ ๋‹จ์ˆœํžˆ title() ํ•จ์ˆ˜๋ฅผ ์“ด ํ’€์ด๋„ ์žˆ์—ˆ๋‹ค. title() ํ•จ์ˆ˜๋Š” ์ฒ˜์Œ ๋ดค๋Š”๋ฐ, ๋ฌธ์ž์—ด์˜ ๊ฐ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๊ธ€์ž๋Š” ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋งŒ๋“œ๋Š” ๋ฉ”์„œ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋„ˆ๋ฌด ์‰ฌ์›Œ์ ธ์„œ ๊ณต๋ฐฑ ์ œ์•ฝ์‚ฌํ•ญ์„ ๋” ์ถ”๊ฐ€์‹œ์ผœ์„œ title() ๋กœ๋Š” ๋ชป ํ’€๊ฒŒ ๋‹ค์‹œ ๋งŒ๋“  ๊ฒƒ ๊ฐ™๋‹ค. title() ๋กœ ๋ชป ํ‘ธ๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

title() ์ฃผ์˜์‚ฌํ•ญ

title()์€ ๋‹จ์ˆœํžˆ ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์—, ์˜๋„ํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "python's best"๋Š” "Python'S Best"๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

 

capitalize()

capitalize() ํ•จ์ˆ˜๋„ ์ด๋ฒˆ์— ์ฒ˜์Œ๋ดค๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์˜ ์ฒซ ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๋ชจ๋“  ๊ธ€์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ์ฒซ ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— split() ์œผ๋กœ ๋‹จ์–ด๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ํ›„์— join ํ•˜๋Š” ์—ฐ์‚ฐ์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•˜๋‹ค.


 

728x90