๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daehyunii's Dev-blog

๊ฐ€์šด๋ฐ ๋ฌธ์ž ์ถœ๋ ฅ(๊ธฐ๋ณธ ๋ฌธ์ œ ํ’€์ด) ๋ณธ๋ฌธ

๐Ÿ“š Language & CS knowledge/Algorithm (๊ธฐ์ดˆ๋ฌธ์ œํ’€์ด)

๊ฐ€์šด๋ฐ ๋ฌธ์ž ์ถœ๋ ฅ(๊ธฐ๋ณธ ๋ฌธ์ œ ํ’€์ด)

Daehyunii 2022. 8. 28. 21:55

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ)

 

์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด(๋ฌธ์ž์—ด)๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ๊ทธ ๋‹จ์–ด์˜ ๊ฐ€์šด๋ฐ ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ ์š”. ๋‹จ ๋‹จ์–ด์˜ ๊ธธ์ด๊ฐ€ ์ง์ˆ˜์ผ ๊ฒฝ์šฐ ๊ฐ€์šด๋ฐ 2๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

โ–ฃ ์ž…๋ ฅ์„ค๋ช…
์ฒซ ์ค„์— ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋œ๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

โ–ฃ ์ถœ๋ ฅ์„ค๋ช…
์ฒซ ์ค„์— ๊ฐ€์šด๋ฐ ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1

study

โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1

u

โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 2

good

โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 2

oo

Tip

1) ๋นˆ ๋ฌธ์ž์—ด์„ ๋‹ด์€ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.(result = '';)

2) ์กฐ๊ฑด๋ฌธ์„ ํ†ตํ•ด์„œ ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ์—๋Š” result์— ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ Math.floor(length / 2)๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ํ•ด๋‹น ์ˆซ์ž๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ฐ–๋Š” ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

3) ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ์ง์ˆ˜์ธ ๊ฒฝ์šฐ์—๋Š” result์— ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ (length / 2) - 1, ๊ณผ length / 2 ์„ ๊ณ„์‚ฐํ•˜์—ฌ ํ•ด๋‹น ์ˆซ์ž๋“ค์„ ์ธ๋ฑ์Šค๋กœ ๊ฐ–๋Š” ๋ฌธ์ž๋ฅผ result์— ์ถ”๊ฐ€ํ•œ๋‹ค.

 

1-1) ์ธ์ˆ˜๋กœ ๋ฐ›์€ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ 2๋กœ ๋‚˜๋ˆ„๊ณ  ๋‚ด๋ฆผํ•˜์—ฌ ์ค‘๊ฐ„์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.(mid = Math.floor(str.length/2))

2-1) ๋งŒ์•ฝ ์ธ์ˆ˜๋กœ ๋ฐ›์€ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ์—๋Š” substring()์— mid์™€, mid+1์„ ์ „๋‹ฌํ•˜์—ฌ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ’์„ result์— ํ• ๋‹นํ•œ๋‹ค.

3-1) ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ์ง์ˆ˜์ธ ๊ฒฝ์šฐ์—๋Š” substring()์— mid-1, mid+1์„ ์ „๋‹ฌํ•˜์—ฌ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ’์„ result์— ํ• ๋‹นํ•œ๋‹ค.

์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ์ธ๋ฑ์Šค๋Š” 0์—์„œ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์ž˜ ์ƒ๊ฐํ•ด์•ผํ•จ

 

String.prototype.substring(์ธ๋ฑ์Šค1, ์ธ๋ฑ์Šค2) : ์ธ๋ฑ์Šค1 ์œ„์น˜๋ถ€ํ„ฐ ~ ์ธ๋ฑ์Šค2 ์ง์ „๊นŒ์ง€ ๋ถ€๋ถ„๋ฌธ์ž์—ด์„ ์ถ”์ถœํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

๋ฌธ์ œํ’€์ด

//๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋‹ต
function solution(str){
    result = '';
    if(str.length % 2 === 1){
        result += str[Math.floor(str.length / 2)];
    }else{
        result += str[(str.length / 2) - 1];
        result += str[(str.length / 2)];
    }
    return result;
}

console.log(solution('study'));
console.log(solution('good'));
console.log(solution('hellomyworld'));


//substring์„ ํ™œ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
function solution(string){
    let answer;
    let mid = Math.floor(string.length / 2);
    if(string.length % 2 === 1) answer = string.substring(mid, mid-1);
    else answer = string.substring(mid - 1, mid + 1);


    return answer;
}
console.log(solution('study'));
console.log(solution('good'));
console.log(solution('hellomyworld'));