Jieunny์˜ ๋ธ”๋กœ๊ทธ

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฐ™์€ ์ˆซ์ž๋Š” ์‹ซ์–ด ๋ณธ๋ฌธ

Study/Coding Test

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ฐ™์€ ์ˆซ์ž๋Š” ์‹ซ์–ด

Jieunny 2023. 1. 16. 18:05

๐Ÿ“Œ ๋ฌธ์ œ

๋ฐฐ์—ด arr๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฐฐ์—ด arr์˜ ๊ฐ ์›์†Œ๋Š” ์ˆซ์ž 0๋ถ€ํ„ฐ 9๊นŒ์ง€๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ๋ฐฐ์—ด arr์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์ˆซ์ž๋Š” ํ•˜๋‚˜๋งŒ ๋‚จ๊ธฐ๊ณ  ์ „๋ถ€ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ์ œ๊ฑฐ๋œ ํ›„ ๋‚จ์€ ์ˆ˜๋“ค์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ๋Š” ๋ฐฐ์—ด arr์˜ ์›์†Œ๋“ค์˜ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด,

  • arr = [1, 1, 3, 3, 0, 1, 1] ์ด๋ฉด [1, 3, 0, 1] ์„ return ํ•ฉ๋‹ˆ๋‹ค.
  • arr = [4, 4, 4, 3, 3] ์ด๋ฉด [4, 3] ์„ return ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐ์—ด arr์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์ˆซ์ž๋Š” ์ œ๊ฑฐํ•˜๊ณ  ๋‚จ์€ ์ˆ˜๋“ค์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

 

โœ๏ธ ํ’€์ด

function solution(arr) {
    let prev = arr[0];
    let answer = [];
    answer.push(arr[0]);
    
    for(let i=1; i<arr.length; i++){
        if(arr[i] === prev){
          if(answer.includes(arr[i]) === false){
            answer.push(arr[i]);
          }
        }
        else{
          answer.push(arr[i]);
          prev = arr[i];
        }
        
    }
    return answer;
}

โžฐ prev์— arr[0] ์ €์žฅํ•ด์ฃผ๊ณ , ๋‹ต์œผ๋กœ ๋ฆฌํ„ดํ•  answer์—๋Š” arr[0] ๋ฏธ๋ฆฌ ๋„ฃ์–ด์ค˜์•ผ ํ•จ.

โžฐ for๋ฌธ์„ 1๋ถ€ํ„ฐ ๋Œ๊ธฐ ๋•Œ๋ฌธ์— 0์— ์žˆ๋Š” ๊ฐ’์€ ์•ˆ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ.

โžฐ prev๋Š” ๋‹ค์Œ ์š”์†Œ๋กœ ๊ณ„์† ๋ฐ”๊ฟ”์ฃผ๋ฉด์„œ ์ง„ํ–‰.