์•Œ๊ณ ๋ฆฌ์ฆ˜/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

Lv.1 ์ด์ƒํ•œ ๋ฌธ์ž ๋งŒ๋“ค๊ธฐ

meteorqz6 2024. 7. 21. 19:01

๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ž์—ด s๋Š” ํ•œ ๊ฐœ ์ด์ƒ์˜ ๋‹จ์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด์˜ ์ง์ˆ˜๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์€ ๋Œ€๋ฌธ์ž๋กœ, ํ™€์ˆ˜๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”.

 

์ œํ•œ ์กฐ๊ฑด

  • ๋ฌธ์ž์—ด ์ „์ฒด์˜ ์ง/ํ™€์ˆ˜ ์ธ๋ฑ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ, ๋‹จ์–ด(๊ณต๋ฐฑ์„ ๊ธฐ์ค€)๋ณ„๋กœ ์ง/ํ™€์ˆ˜ ์ธ๋ฑ์Šค๋ฅผ ํŒ๋‹จํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž๋Š” 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋กœ ๋ณด์•„ ์ง์ˆ˜๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ 

s return
"try hello world" "TrY HeLlO WoRlD"

 

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

"try hello world"๋Š” ์„ธ ๋‹จ์–ด "try", "hello", "world"๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด์˜ ์ง์ˆ˜๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ, ํ™€์ˆ˜๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๋ฉด "TrY", "HeLlO", "WoRlD"์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "TrY HeLlO WoRlD" ๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

 

< ๋‚˜์˜ ํ’€์ด > 

function solution(s) {
    // ๋‹จ์–ด๋ณ„๋กœ ๋‚˜๋ˆ„๊ธฐ
    let words = s.split(' ');

    // ๊ฐ ๋‹จ์–ด๋ณ„๋กœ ์ˆœํšŒ
    let transformedWords = words.map(word => {
        // ๋‹จ์–ด์˜ ๊ฐ ๋ฌธ์ž๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๋ฐ˜ํ™˜
        let transformedWord = word.split('').map((char,index) => {
            if( index%2 === 0 ){
                return char.toUpperCase();
            }
            else {
                return char.toLowerCase();
            }
        }).join('');
        return transformedWord;
    })

    return transformedWords.join(' ');
}

 

s = 'try hello world'

words = [ 'try', 'hello', 'world' ]

๋‹จ์–ด ( word ) ์˜ ๊ฐ ๋ฌธ์ž๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๋ฐ˜ํ™˜

1. word = 'try'  → transformedWord = 'TrY'

2. word = 'hello' → transformedWord = 'HeLlO'

3. word = 'world'  → transformedWord = 'WoRlD'

transforemedWords= [ 'TrY', 'HeLlO', 'WoRlD' ]

 

< ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด > 

function solution(s) {
    return s.toUpperCase().replace(/(\w)(\w)/g, function(a){return a[0].toUpperCase()+a[1].toLowerCase();})
}

 

๋ฌธ์ž์—ด ๋ฉ”์„œ๋“œ 

  • toUpperCase() : ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ
  • replace() : ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๊ต์ฒดํ•˜๋Š” ๋ฉ”์„œ๋“œ

์ •๊ทœ ํ‘œํ˜„์‹ 

  • \w : ๋ฐ‘์ค„ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ ์˜์ˆซ์ž ๋ฌธ์ž์— ๋Œ€์‘ํ•œ๋‹ค. 
  • (\w)(\w) : 2๊ฐœ์˜ ์—ฐ์†๋œ ๋ฌธ์ž๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ์บก์ณํ•œ๋‹ค.
  • g : ๊ธ€๋กœ๋ฒŒ ํ”Œ๋ž˜๊ทธ๋กœ, ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ์ผ์น˜ ํ•ญ๋ชฉ์„ ์ฐพ๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

s = 'try hello world'   → 'TRY HELLO WORLD'

 

TR → Tr

HE → He

LL → Ll

WO →Wo

RL → Rl

 

'TrY HeLlO WoRlD'