[Codekata] JavaScript

link717ยท2020๋…„ 12์›” 15์ผ
0

codekata

๋ชฉ๋ก ๋ณด๊ธฐ
4/5
post-thumbnail

๐Ÿ˜ฅ Question?

์ •์ˆ˜ ๋ฐฐ์—ด numbers๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
numbers์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๋‘ ๊ฐœ์˜ ์ˆ˜๋ฅผ ๋ฝ‘์•„ ๋”ํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ˆ˜๋ฅผ
๋ฐฐ์—ด์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ž‘์„ฑํ•œ ์ฝ”๋“œ)

function solution(numbers) {
  let answer = [];
  for (let i = 0; i < numbers.length; i++) {
    for (let j = 1; j < numbers.length; j++) {
      let sum = numbers[i] + numbers[j];
      if(answer.indexOf(sum) === -1 && i !== j) {
      answer.push(sum);
      }
    }
  }
  return answer.sort((a,b) => a-b);
}

์ธ๊ธฐ์žˆ๋Š” ๋ฌธ์ œํ’€์ด)
function solution(numbers) {
    const temp = []

    for (let i = 0; i < numbers.length; i++) {
        for (let j = i + 1; j < numbers.length; j++) {
            temp.push(numbers[i] + numbers[j])
        }
    }
    const answer = [...new Set(temp)]
    return answer.sort((a, b) => a - b)
}

๐Ÿ˜ Idea!

The Set object lets you store unique values of any type, whether primitive values or object references. NaN and undefined can also be stored in a Set. All NaN values are equated (i.e. NaN is considered the same as NaN, even though NaN !== NaN). (MDN)

Set()์€ ์ค‘๋ณต์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ(ES6)์ด๋‹ค.(Data Type์„ ๊ตฌ๋ถ„ํ•จ, 1 !== "1")

<Array โ†” Set>

var myArray = ['value1', 'value2', 'value3'];

// Array๋ฅผ Set์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ •๊ทœ Set ์ƒ์„ฑ์ž ์‚ฌ์šฉ
var mySet = new Set(myArray);

mySet.has('value1'); // true ๋ฐ˜ํ™˜

// set์„ Array๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์ „๊ฐœ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•จ.
console.log([...mySet]); // myArray์™€ ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฐฐ์—ด์„ ๋ณด์—ฌ์คŒ

< Set method >

1) add

   let mySet = new Set()
   mySet.add(1)           // Set [ 1 ]
   mySet.add('some text') // Set [ 1, 'some text' ]

2) has

   mySet.has(1)              // true
   mySet.has(3)              // false, since 3 has not been added to the set

3) delete

  mySet.delete(3)    // removes 3 from the set
  mySet.has(3)       // false, 3 has been removed

โ€บ JavaScript New Set ํ™œ์šฉ (๊ต์ง‘ํ•ฉ/์ฐจ์ง‘ํ•ฉ ํ™œ์šฉ)

profile
Turtle Never stop

0๊ฐœ์˜ ๋Œ“๊ธ€