Where my anagrams at?

์ด์กฐ์€ยท2020๋…„ 12์›” 20์ผ
0

Code Kata

๋ชฉ๋ก ๋ณด๊ธฐ
10/15
post-thumbnail

๋ฌธ์ œ

๐Ÿ’ก anagram์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?
๋‘ ๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ์„œ๋กœ ๋˜‘๊ฐ™์€ ๋ฌธ์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋•Œ ์„œ๋กœ์˜ anagram์ด๋ผ ์ผ์ปซ๋Š”๋‹ค.

word์˜ ๋ฌธ์ž์™€ ๋˜‘๊ฐ™์€ ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ words์˜ ์š”์†Œ๋ฅผ ์ฐพ์•„๋ผ. ์ด๋•Œ ๋ฌธ์ž์˜ ์ข…๋ฅ˜๋Š” ๋˜‘๊ฐ™์•„์•ผ ํ•˜์ง€๋งŒ ์ˆœ์„œ๋Š” ๋‹ฌ๋ผ๋„ ๋œ๋‹ค.

anagrams('abba', ['aabb', 'abcd', 'bbaa', 'dada']) => ['aabb', 'bbaa']

anagrams('racer', ['crazer', 'carer', 'racar', 'caers', 'racer']) => ['carer', 'racer']

anagrams('laser', ['lazing', 'lazy',  'lacer']) => []

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

๐Ÿ™†๐Ÿปโ€โ™€๏ธ ์ฒซ ๋ฒˆ์งธ ํ’€์ด

๋งจ ์ฒ˜์Œ์— sortedWord์™€ sortedWords๋ฅผ ๋งŒ๋“ค ๋•Œ join์„ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ๊ฐ๊ฐ์˜ ๋ฐฐ์—ด์„ ๋น„๊ตํ–ˆ๋‹ค. ๊ทธ๋žฌ๋”๋‹ˆ ๋ฌธ์ž ๊ตฌ์„ฑ์ด ๊ฐ™๋”๋ผ๋„ ๋‘ ๋ฐฐ์—ด์€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์™”๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋‘ ๋ฐฐ์—ด์ด ๋˜‘๊ฐ™์ด ์ƒ๊ฒผ๋”๋ผ๋„ ๋‹ค๋ฅธ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ join์„ ์‚ฌ์šฉํ•˜์—ฌ ํƒ€์ž…์„ ๋ฐ”๊ฟ”๋ฒ„๋ ธ๋”๋‹ˆ ๋น„๊ต๊ฐ€ ํ•œ์ธต ์ˆ˜์›”ํ–ˆ๋‹ค.

๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ธฐ์–ตํ•˜์ž. ๋‘ ๋ฐฐ์—ด์„ ์„œ๋กœ ๋น„๊ตํ•  ๋•Œ๋Š” ๋งŽ์€ ๊ณ ๋ ค์‚ฌํ•ญ์ด ๋”ฐ๋ฅธ๋‹ค. ์ ๊ทน์ ์œผ๋กœ ํƒ€์ž…์„ ๋ฐ”๊พธ๋ ค๋Š” ๋…ธ๋ ฅ์„ ํ•˜์ž.

function anagrams(word, words) {
  let result = [];
  const sortedWord = word.split("").sort().join("");
  for (let i = 0; i < words.length; i++) {
    let sortedWords = words[i].split("").sort().join("");
    if (sortedWord === sortedWords) {
      result.push(words[i]);
    }
  }
  return result;
}
profile
์‹ฑ๊ธ€๋ฒ™๊ธ€

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