Miyeon

#50 Longest Common Prefix

2021-07-15Algorithm

๐Ÿ”ฅ Longest Common Prefix ๐Ÿ”ฅ

Example 1:

Input: strs = ["flower", "flow", "flight"];
Output: "fl";

Example 2:

Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.

์ฝ”๋“œ ์ž‘์„ฑ

const longestCommonPrefix = function(strs) {
  let result;
  let prefix = "";
  for (let i = 0; i < strs.length; i++) {
    result = strs.filter(str => str.slice(i, i + 1) === strs[0][i]);

    if (strs.length === result.length) {
      prefix += strs[0][i];
    } else {
      break;
    }
  }

  return prefix === "" ? "" : prefix;
};

๋˜ ๋‹ค๋ฅธ ์ ‘๊ทผ๋ฒ•

์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊ธฐ์ค€์ด ๋˜๋Š” prefix๋กœ ์ •ํ•œ ๋’ค Str.indexOf()์™€ Str.substring() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ prefix ๋ฒ”์œ„ ์ค„์ด๊ธฐ

const longestCommonPrefix = function(strs) {
  let prefix = strs[0];

  for (let i = 1; i < strs.length; i++) {
    while (strs[i].indexOf(prefix) !== 0) {
      prefix = prefix.substring(0, prefix.length - 1);
    }
  }

  return prefix;
};

WILT : What I Learned Today ๐Ÿค”

  • ํŒจํ„ด์„ ๋ฐœ๊ฒฌํ•˜์ž. ๋น„๊ต๋ฅผ ํ•˜๋ ค๋ฉด ๊ธฐ์ค€์ด ํ•„์š”ํ•˜๋‹ค. ์ฒซ ๋ฐฐ์—ด์ด ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •ํ•˜๊ณ  ๊ฐ’์„ ๋น„๊ตํ•˜๋‹ˆ๊นŒ ๊ฐ€๋…์„ฑ๋„ ์ข‹์•„์ง€๊ณ  ํ›จ์”ฌ ์ฝ”๋“œ๊ฐ€ ๋‹จ์ˆœํ•ด์กŒ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž˜ํ•˜๊ธด ์–ด๋ ค์šฐ๋‹ˆ ์šฐ์„  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ๊ทธ ๋‹ค์Œ์— ๋” ๋‚˜์•„์งˆ ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด ๊ณ„์† ๊ณ ๋ฏผํ•ด๋ณด์ž. ์˜ค๋Š˜๋„ ํ•œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ƒˆ๋‹ค ์•„์ž!