๋ฌธ์
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string "".
ํ ๋จ์ด๊ฐ ์์์ธ ๋ฐฐ์ด์ด ์ฃผ์ด์ง ๋, ์์์ ๋ฌธ์์ด์์ ์กด์ฌํ๋ ๊ฐ์ฅ ๊ธด ์ ๋์ฌ๋ฅผ ์ฐพ์ ๋ฐํํ๋ค.
์๋ค๋ฉด ๋น ๋ฌธ์์ด์ ๋ฐํ.
ํ์ด
const longestCommonPrefix = (strs) => {
if (strs.length === 0) return '';
if (strs.length === 1) return strs[0];
let prefix = '';
let prev = '';
for (let i = 0; i < strs[0].length; i++) {
prev = prefix;
prefix += strs[0][i];
for (let j = 0; j < strs.length; j++) {
if (!strs[j].startsWith(prefix)) return prev;
}
}
return prefix;
};
๋จผ์ ๋งค๊ฐ๋ณ์๋ก ๋์ด์จ ์ธ์์ ๊ธธ์ด๊ฐ 0์ด๊ฑฐ๋ ์์๊ฐ 1๊ฐ๋ฐ์ ์๋ ๊ฒฝ์ฐ ๋ฐํํ๋๋ก ์์ธ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
์๊ฐํ ๋ฐฉ์์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์์ ๊ธ์๋ฅผ ํ๋์ฉ ๋ผ์ด์ ๋์ ํ๋ฉด์
๋ค๋ฅธ ์์๋ค์ ์๊ธ์์ ๋์ผํ์ง ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ ๋์ฌ๋ฅผ ๋์ ํ๋ prefix ๋ณ์์ ์ด์ ์ ๋์ฌ๋ฅผ ์ ์ฅํ๋ prev ๋ณ์๋ฅผ ์ ์ธํด์,
prefix๋ ์ฒซ๋ฒ์งธ ์์์ ํ ๊ธ์์ฉ์ ๊ณ์ํด์ ๋์ ํ๋ฉฐ ์
๋ฐ์ดํธ ํ๋๋ก ํ๋ค.
startsWith ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ์ ๋์ฌ์ธ์ง๋ฅผ ํ์ธํ๊ณ ๊ทธ๋ ์ง ์๋ค๋ฉด ์ด์ ๊น์ง ๋์ ๋ ๋ณ์ prev๋ฅผ ๋ฐํํ๋ค.
๋ค๋ฅธ ํ์ด
var longestCommonPrefix = function(strs) {
let prefix = '';
if (strs.length === 1) return strs[0];
for (let i = 0; i < strs[0].length; i++) {
let currentChar = strs[0][i];
if (currentChar && strs.every((s) => s[i] == currentChar)) {
prefix += currentChar;
} else {
return prefix;
}
}
return prefix;
};
every ๋ฉ์๋๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ์ด๋ค.
๊ฐ๊ฐ์ ๊ธ์๋ค์ด ํ์ฌ ๋์ ๊ธ์์ธ currentChar์ ๊ฐ์์ง ํ์ธํด์, ์ฐธ์ธ ๊ฒฝ์ฐ์๋ง ๋์ ํ๋ค.
์กฐ๊ฑด์ ์ถฉ์กฑํ ๋๋ง ๋์ ํ๋ค๋ ์กฐ๊ฑด์ด ์ข ๋ ํจ์จ์ ์ธ ๊ฒ ๊ฐ๋ค.
์๋ ๋ฉด์์๋ ๋์ ํ์ด๋ณด๋ค ์ด์ง ๋น ๋ฅธ ์ ๋.
์๋ฌธ์ ์๋์์ ํ์ธํ ์ ์๋ค.
๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ
๋ฐฉ๋ฌธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐
ํฌ์คํ ๋ค์ ๊ณต๋ถ์ค์ธ ๋ด์ฉ์ ๊ธ๋ก ์์ฑํ ๊ฒ์ด๋ผ ๋ถ์กฑํ ์ ์ด ๋ง์ผ๋ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค.
๋ถ์กฑํ ๋ถ๋ถ์ ๋ํ ์ฝ๋ฉํธ๋ ์ธ์ ๋ ํ์์ ๋๋ค.
์ข์ ํ๋ฃจ ๋์ธ์, ๊ฐ์ฌํฉ๋๋ค! ๐
'๐ Algorithm > LeetCode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] leetCode : Reverse Words in a String (0) | 2022.05.16 |
---|---|
[JavaScript] leetCode : Implement strStr() (0) | 2022.05.12 |
[JavaScript] leetCode : Linked List Cycle II (3) | 2022.05.03 |
[JavaScript] leetCode : Valid Mountain Array (3) | 2022.05.02 |
[JavaScript] LeetCode : Add Binary (0) | 2022.04.22 |
Comment