Notice
Recent Posts
Recent Comments
Link
ยซ   2025/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Lennon FE

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฌธ์ž์—ด ์••์ถ• (js) ๋ณธ๋ฌธ

๐Ÿ”ฅ Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฌธ์ž์—ด ์••์ถ• (js)

Lennon 2021. 11. 3. 02:35
728x90
๋ฐ˜์‘ํ˜•

https://programmers.co.kr/learn/courses/30/lessons/60057?language=javascript 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฌธ์ž์—ด ์••์ถ•

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋˜๊ณ  ์‹ถ์€ "์–ดํ”ผ์น˜"๋Š” ๋ฌธ์ž์—ด์„ ์••์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ๋น„์†์‹ค ์••์ถ• ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ฌธ

programmers.co.kr

 

function solution(s) {
    
    let answer = 1000;
    
    for(let i = 1; i < s.length; i++){
        
        const result = devideArr(s, i);
        
        let [arr, count] = [[], 1];
        
        
        for(let j = 0; j < result.length; j++){
            
            if(result[j] === result[j+1] && j < result.length-1){
                count++;
            }
            else{
                if(count === 1) arr.push(result[j]);
                else {
                    arr.push(count, result[j]);
                }
                count = 1;
            }
        }
        answer = Math.min(answer, arr.join("").length);
    }
    
    return s.length === 1 ? 1 : answer;
}

function devideArr(arr, size){
    let result = [] 
    let count = size;
    let i, j;
    for (i = 0, j = arr.length; i < j; i += count) {
        result.push(arr.slice(i, i + count));
    }
    return result;
}

 

devideArr  => ์ž…๋ ฅํ•œ ๋ฐฐ์—ด์„ ์ž…๋ ฅํ•œ size๋กœ ๋‚˜๋ˆ„์–ด์ฃผ๋Š” ํ•จ์ˆ˜ ex) devideArr([1,2,3,4], 2) => ['12', '34']

 

์ดํ›„ ์œ„์— for๋ฌธ์—์„œ ์•ž ๋’ค๋กœ ๊ฐ™์œผ๋ฉด count๋ฅผ 1์”ฉ ๋”ํ•ด์ฃผ๋ฉฐ ๋‹ค๋ฅธ ๊ฒŒ ๋‚˜์˜ค๋ฉด ๋ฐฐ์—ด์— count์™€ ๊ฐ’์„ pushํ•œ๋‹ค.

 

answer์„ ๋ฌธ์ œ s์˜ ์ตœ๊ณ ๊ธธ์ด์ธ 1000์œผ๋กœ ๋‘๊ณ  1๋ฒˆ์”ฉ ๋Š์—ˆ์„ ๋•Œ, 2๋ฒˆ์”ฉ ๋Š์—ˆ์„ ๋•Œ .... s๋ฒˆ์”ฉ ๋Š์—ˆ์„ ๋•Œ์˜ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋น„๊ตํ•ด ์ตœ์†Œ๊ฐ’์„ ๊ฐฑ์‹ ํ•œ๋‹ค.

 

๊ทธ ํ›„ ์ตœ์†Œ๊ฐ’์„ returnํ•˜๋ฉด ๋!

 

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ํ•˜๋‚˜๊ฐ€ ์•ˆ๋˜๊ธธ๋ž˜ ๊ธธ์ด๊ฐ€ 1์ธ ๋ฌธ์ž์—ด์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ฒ ๊ตฌ๋‚˜ ํ•˜๊ณ  ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค. 

 

 

=> ํ•จ์ˆ˜๋กœ ๋‚˜๋ˆ„๊ธฐ (์ฒ˜์Œ์— ํ•จ์ˆ˜๋กœ ๋‚˜๋ˆ„์ง€ ์•Š์•˜๋”๋‹ˆ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐ’๋“ค์ด ์žˆ์—ˆ๋‹ค)

     ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ํ•˜๊ฒŒ ํ•˜๊ธฐ (์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ํ•จ์ถ•ํ•˜์ง€ ์•Š์•„์•ผ๊ฒ ๋‹ค)

728x90
๋ฐ˜์‘ํ˜•
Comments