์์ฝ๋ 3์ฃผ์ฐจ๋ถํฐ๋ ์์๋ฆฌ ์ง์ด๋ ํ์ด ์ฝ๋์นดํ๊ฐ ์งํ๋์๋ค!
์๊ฐ๋ณด๋ค ์ฌ๋ฐ๊ณ ์ด๋ ค์ ๋ค.....
๋งค์ผ๋งค์ผ ์ ๋ฆฌํ๊ธด ํ๋๋ฐ, ํ๋ฃจ์ ํ๋์ฉ ์ฌ๋ฆฌ๊ธด ์ ๋งคํ๋ ๋ฌธ์ ๋ค 1์ฃผ์ผ์น๋ฅผ ์ด ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค!
let numArr = [4, 9, 11, 14];
const twoSum = (nums, target) => {
for(let i in nums) {
let j = i + 1;
for(let j in nums){
if(nums[i] + nums[j] === target) {
return [+i, +j];
}
}
}
}
twoSum(numArr, 20); // [1, 2]
nums ๋ฐฐ์ด์ index๋ฅผ [i]
, [j]
(j = i + 1) ๋ก ์ง์ ํด๋๊ณ ๊ฐ๊ฐ for in ๋ฌธ์ ๋๋ ธ๋ค!
๊ทธ๋ฐ๋ฐ ๋ง์ง๋ง์ ๋ฐฐ์ด์ด string ํํ๋ก ๋ฐํ๋๋ค......ใ
[1, 2] ๊ฐ ๋ฐํ๋์ผ ํ๋๋ฐ, ["1", "2"] ๊ฐ ๋ฐํ๋๋ ๊ฒ....
์์๋ฐฉํธ(?)์ผ๋ก +
๋ก number type์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ธด ํ์ผ๋....
๋น ๋ฐฐ์ด์ push
ํด์คฌ์ด์ผ ํ๋๊ฑด์ง? ํท๊ฐ๋ฆฐ๋น๐
for in ์์ฒด๊ฐ string์ผ๋ก ๋ฑ์ด๋ธ๋ค๊ณ ํจ!
let numArr = [4, 9, 11, 14];
const twoSum = (nums, target) => {
let resultArr = [];
for (let i in nums) {
let findNum = Math.abs(target - nums[i]);
if (nums.indexOf(findNum) !== -1) {
resultArr.push(Number(i), nums.indexOf(findNum));
return resultArr;
}
}
}
twoSum(numArr, 20); // [1, 2]
์ ๊ฒฝ๋ ํ์ด๋ indexOf
๋ฅผ ์ด์ฉํด์ i
๊ฐ์ด๋ indexOf(findNum)
์ ๋น๊ต,
๊ทธ ํ์ ๋น ๋ฐฐ์ด resultArr
์ ํธ์ฌํ๊ณ , resultArr
๋ฅผ return ํ์
จ๋น
Math.abs
๋ผ๋๊ฐ...? ๋ชจ๋ฅด๋ ๋ฉ์๋๊ฐ ์๋ฉ๐
๊ฐ์ ๋ฐ๋ก ํผ๊ฑด ์๋๋ฐ, ์ด์ฉ๋ค ๋ณด๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํ๊ฒ ๋จใ ใ ใ ใ ใ ใ
function twoSum(nums, target) {
for (let i = 0; i < nums.length-1; i++) {
for (let j = i+1; j < nums.length; j++) {
if (nums[i] + nums[j] === target) {
return [i, j];
}
}
}
}
๊ทธ๋ฅ for ๋ฌธ ์ฐ๋๊น ์ ๋์ค๋ค!?
console.log(typeof(i));
ํด๋ณด๋๊น ๋ด ํ์ด๋ string
์ผ๋ก ๋์ค๊ณ ๋ชจ๋ธ ์๋ฃจ์
์ number
๋ก ๋์จ๋ค.....
์๊ทธ๋ฌ์ง? for in ๋ฌธ์์ ์ ์ธ๋ ๋ณ์๋ ๋ฌด์กฐ๊ฑด string
์ด ๋๋ ๊ฑด๊ฐ....?
์ผ์ ์ดํด ์๊ฐใ ใ ใ ใ ใ ใ ใ ใ
for in ์์ฒด๊ฐ string์ผ๋ก ๋ฑ์ด๋ธ๋ค๊ณ ํจ!
const reverse = x => {
let returnNum = parseInt(x.toString().split("").reverse().join(""));
return x >= 0 ? returnNum : -returnNum;
}
reverse(-1234); // -4321
string ๋ค์ง๋ ๊ฑด ์๋ ์๊ณ ์์๋ค!
split("").reverse().join("")
(๊ณต์ ์ธ์ฐ๋ฏ์ด ์ค์ค ๋์์ใ ใ ใ ใ ใ ใ ์ด๊ฒ ๋ด ์ง๋ถ ๋...!!)
x
๋ฅผ toString
์ผ๋ก ๋ฌธ์์ด ํ์
์ผ๋ก ๋ณํํ ๋ค์์, ๋์จ ๊ฐ์ parseInt
๋ก ์ซ์ ํ์
์ผ๋ก ๋ค์ ๋ณํํด์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๊ฑธ returnNum
๋ณ์์ ์ง์ ํด ์ฃผ๊ณ ...!
์ฒ์์ ๋ค์ด์จ x
๊ฐ์ด 0๋ณด๋ค ์์ผ๋ฉด... ์ฆ, ์์์ด๋ฉด! -returnNum
์ผ๋ก ์์๋ก ๋ฐํํ๋ค.
๊น๋ํ๊ฒ 3์ค ์ปท!!
function reverse(x) {
let minus = false;
if (x < 0) {
x *= -1;
minus = true;
}
let numText = x.toString();
let result = '';
for (let i = numText.length-1; i >= 0; i--) {
result += numText[i];
}
result = minus ? result * -1 : Number(result);
return result;
}
ํฌํ.....ใ ๋ญ๋ง.....?
์ผ๋จ....... x
๊ฐ ์์๋ฉด -
์ ๊ณฑํด์ ์ผ๋จ ์์๋ก ๋ง๋ค์ด ์ฃผ๊ณ .....(์๋์ค์์ for ๋ฌธ ๋๋ ค์ ๋น๋ฐฐ์ด์ ์ด์ค์ผ ํ๋๊น)
์์์ธ๊ฑธ ํ์ํ๊ธฐ ์ํด minus
๊ฐ์ true๋ก ์ค๋ค.
x
๊ฐ ์์๋ฉด toString
์ผ๋ก ๋ฌธ์์ด๋ก ๋ณํํ ๋ค์์ for ๋ฌธ์ ๋๋ ค์ numText
์ index ๊ฐ์ ๋ค ๋น๊ตํด์ result
๋ผ๋ ๋น ๋ฐฐ์ด์ ํ๋์ฉ ๋ฃ์ด์ค๋ค.
๊ทธ๋์ ์ต์ข
์ ์ผ๋ก minus
๊ฐ์ด true ์ด๋ฉด -1์ ๊ณฑํด์ฃผ๊ณ , ์๋๋ฉด ๊ทธ๋ฅ number ํ์
์ผ๋ก return ํด์ค๋ค.
์ ํด์ํ๋๋ฐ ์๊ทผ ํ๋ค์๋น;; ์์งํ ์ด๋ ๊ฒ ์ธ ์ผ์ ์์ ๊ฒ ๊ฐ์ง๋ง,
์์๋ฅผ ๋ํ๋ด๊ธฐ ์ํด boolean ๊ฐ์ ๋ด๊ณ ์๋ minus
๋ณ์๋ฅผ ์ด์ฉํ๋๊ฑด ์ ๋ฐํ๋น. ๋ค๋ฅธ ๋ฐ์๋ ์ ์ฉํ๊ฒ ์ ์ธ ์ ์์๋ฏ!!
const getLengthOfStr = str => {
let strArr = [];
let compare = 0;
for(let i in str) {
if (strArr.indexOf(str[i]) === -1) {
strArr.push(str[i]);
} else {
if(compare < strArr.length) {
compare = strArr.length;
}
strArr.splice(0, strArr.length);
strArr.push(str[i]);
}
}
return Math.max(strArr.length, compare);
}
getLengthOfStr("abcdefghcijklmnop"); // 9
strArr
๋ผ๋ ๋น ๋ฐฐ์ด์ ์ ์ธํ๊ณ , ๊ทธ ๋ฐฐ์ด ์์ ์ธ์๋ก ๋์ด์จ str[i]
์ indexOf
๊ฐ -1์ด๋ฉด = ์ฆ, strArr
์์ str[i]
๊ฐ ์์ผ๋ฉด! ๋ฐ๋ก push
ํ๋ค!
๋ง์ฝ, ์์ผ๋ฉด! ์ค๋ณต๋์ง ์๋ ๋ฌธ์ ๋ผ๋ฆฌ์ ๊ธธ์ด๊ฐ์ ๋น๊ตํ๊ธฐ ์ํด ์ ์ธํด๋ compare
์, ํ์ฌ ์ค๋ณต๋์ง ์๋ ๋ฌธ์๊ฐ ๋ด๊ฒจ์๋ strArr
์ ๊ธธ์ด๋ฅผ ๋น๊ตํด์, compare
๊ฐ ๋ ์์ ๊ฒฝ์ฐ, compare
์ strArr
์ ๊ธธ์ด๋ฅผ ์ ์ฅํด๋๋ค.
(์์์ ์ฅ ๊ฐ์ ๋๋!)
์ ์ฅ ํ์๋ strArr
์ ํด๋น ๋ฌธ์๊น์ง๋ฅผ ์๋ผ๋ธ ํ, str[i]
๋ฅผ ๋ค์ push
ํ๋ค.
โ strArr
๋ ์์์ ์ฅ ํ ํ ์ฐจ๋ก ๋น์์ก์ผ๋๊น, ๋ค์ str[i]
๋ฅผ ์ ์ฅํด์ ๋ค์๋ฒ ๋ฌธ์์ ๋น๊ตํ๊ธฐ ์ํด!!
์ด๋ ๊ฒ ํ๊ณ submit
ํ๋๋ฐ......
๋ค๋ฅธ ๊ฒฝ์ฐ๋ ๋ค ํต๊ณผ์ธ๋ฐ, ๋ค์์ ๊ฒฝ์ฐ์ ์งฑ๋๋ ๋นจ๊ฐ์์ด ๋ฌ๋ค.....๐ญ
๋ญ๊ฐ ๋ฌธ์ ๋๋ฉดใ ใ
์ธ์๋ก ์ฃผ์ด์ง ๋ฌธ์๊ฐ abcdefghcijklmnop
์ธ ๊ฒฝ์ฐ, ์ฌ๊ธฐ์ ์ค๋ณต๋์ง ์๋ ๋ฌธ์ ์ค ์ ์ผ ๊ธด ๋ฌธ์๋, ์์ abc
๋ฅผ ์ ์ธํ๊ณ , defghcijklmnop
์ด๋ค!
๊ทธ๋ฐ๋ฐ, ๋ด๊ฐ ํผ ๋ฐฉ๋ฒ์ ์์์๋ถํฐ ์์ฐจ์ ์ผ๋ก ๋ฐฐ์ด ํ์ธ ํ ํ๋์ฉ ์ ๊ฑฐํด๋๊ฐ๊ธฐ ๋๋ฌธ์, ์ด๋ ๊ฒ ์ค๋ณต๋ฌธ์๊ฐ ์ค๊ฐ์ ๋ ๊ฐ ์ธ ๊ฒฝ์ฐ, 2๋ฒ์งธ ์ค๋ณต๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋น๊ตํ ์๊ฐ ์๋ ๊ฒใ ใ
์ข์ ๋ฐฉ๋ฒ์ด ์์๊น ํ์ฐธ์ ๊ณ ๋ฏผํ์ง๋ง ๊ฒฐ๊ตญ ๋ฐฉ๋ฒ์ด ๋ ์ค๋ฅด์ง ์์์ใ ใ
๊ทธ๋ฅ ์ญ์์ผ๋ก ํ๋ฒ ๋ ๋์๋น...
const getLengthOfStr = str => {
let strArr = [];
let compare = 0;
for(let i in str) {
if (strArr.indexOf(str[i]) === -1) {
strArr.push(str[i]);
} else {
if(compare < strArr.length) {
compare = strArr.length;
}
strArr.splice(0, strArr.length);
strArr.push(str[i]);
}
}
for(let i = str.length-1; i>=0; i--) {
if (strArr.indexOf(str[i]) === -1) {
strArr.push(str[i]);
} else {
if(compare < strArr.length) {
compare = strArr.length;
}
strArr.splice(0, strArr.length);
strArr.push(str[i]);
}
}
return Math.max(strArr.length, compare);
}
getLengthOfStr("abcdefghcijklmnop"); // 14
ใ ใ ใ ใ ๋นํจ์จ์ ๊ทน์น ใ ใ ใ
function getLengthOfStr(s) {
let strArr = [];
let prevStrArr = [];
for (let i = 0; i < s.length; i++) {
let ss = s.slice(i, i + 1);
for (let j = 0; j < strArr.length; j++) {
if (ss === strArr[j]) {
if (prevStrArr.length < strArr.length) {
prevStrArr = strArr.slice();
}
strArr = strArr.splice(j + 1, strArr.length);
break;
}
}
strArr.push(ss);
}
return Math.max(strArr.length, prevStrArr.length);
}
console.log(getLengthOfStr('taaaytts'));
์.....๋๊ตฌ ํด์ํด์ฃผ์ค ๋ถ....?
const sameReverse = num => {
let reverseNum = num.toString().split("").reverse().join("");
return num.toString() === reverseNum ? true : false;
}
sameReverse(1221); // true
์ด๋ฒ ๋ฌธ์ ๋ ์์ ์ฌ์ ๋ค!! ๊ฑฐ์ 10์ด์ปท ํ๋ฏ?
Day 2 ๋ฌธ์ ๋ ์์ ๋๊ฐ์๋น, ๋ง์ง๋ง์ true / false return ํ๋๊ฒ๋ง ๋ค๋ฅด๊ณ !!
๊ทธ๋์ ๋ ์ธ๊ฒ ์๋น..... ๊ทธ๋ฅ Day 2 ํจ์ ๊ทธ๋๋ก ๊ฐ๋ค์ผ์ใ ....
function sameReverse(num) {
let xStrArr = (num + '').split('');
let strLength = xStrArr.length;
let arr = [];
for (let i = 0; i < strLength; i++) {
arr.push(xStrArr.pop());
}
// console.log(Number(arr.join('')))
return num === Number(arr.join(''));
}
console.log(sameReverse(1234567887654321));
์ผํ ! ๊ธธ๋ค...!
์ผ๋จ, number๋ฅผ string์ผ๋ก ๋ณํํ ํ์ split
์ผ๋ก ์ชผ๊ฐ๋์ ๋
์์ xStrArr
๋ก ์ ์ธํด๋๊ณ ,
์ด xStrArr
์ ๊ธธ์ด๋ฅผ strLength
๋ก ์ ์ธ!
๊ทธ๋ฆฌ๊ณ ๋น ๋ฐฐ์ด๋ ํ๋ ๋ง๋ค๊ณ ๋๊ณ for ๋ฌธ์ ๋๋ฆฌ๋ค!
๋น ๋ฐฐ์ด์ xStrArr
์ ์์๋ค์ ํ๋์ฉ pop
์ผ๋ก ๋ฃ์ด์ค๋ค.
๐ค
pop
์ ๋ฐฐ์ด์ ์์ ์ญ์ ํ๋ ๋ฉ์๋์ธ๋ฐ? ๋ฃ์ด์ค๋ค๊ณ ?
๋ง๋ค.pop
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ฅผ ์ญ์ ํด์ ๋ฐํํ๋ค.
๊ทธ๋ผpop
๋ฉ์๋๋ก ์ญ์ ๋ ์์๋ ์ด๋์ ๊ฐ๊น?
๋ธ๋ก๊ทธ์ ์ ๊น ์ ๋ฆฌํ ์ ์ด ์๋๋ฐ... ์ด ์์๋ค์ ์ฆ๋ฐํ๊ฑฐ๋ ์ฌ๋ผ์ง์ง ์๋๋ค!
์ปดํจํฐ์ ํด์งํต์ ์๊ฐํ๋ฉด ๋จ! ํด์งํต์ ๋ค์ด๊ฐ ์์ด๋ค์ํด์งํต ๋น์ฐ๊ธฐ
๋ฅผ ํ์ง ์๋ ์ด์์ ๋ค์ ๊บผ๋ด ์ธ ์ ์๋ฏ์ด,pop
์ผ๋ก ์ ๊ฑฐ๋ ์์๋ ๋ค๋ฅธ ๋ณ์์ ์ง์ ํ ์ ์๋ค.๋น ๋ฐฐ์ด์ xStrArr ์ ์์๋ค์ ํ๋์ฉ pop ์ผ๋ก ๋ฃ์ด์ค๋ค.
์ฆ,
xStrArr
์ ๋ง์ง๋ง ์์๋ค์ ํ๋์ฉpop
์ผ๋ก ์ ๊ฑฐํ ํ์, ์ ๊ฑฐํ ๋ ์๋ค์ ๋น ๋ฐฐ์ดarr
์ ํ๋์ฉ push ํด์ฃผ๋ ๊ฒ์ด๋ค.
push
๋ฉ์๋๋ ๋ฐฐ์ด์ ๋งจ ๋ค์ ์ฐจ๊ณก์ฐจ๊ณก ์ถ๊ฐํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์.....
array = [1, 2, 3, 4]
๋ผ๋ ๋ฐฐ์ด์pop
->push
ํ๋ฉด `array2 = [4, 3, 2, 1] ์ด ๋๋๊ฒ!!
๊ทธ๋ฆฌ๊ณ num
์ด ๋ค์งํ ๊ฐ์ด ๋ค์ด์๋ ๋ฐฐ์ด arr
์ join
์ผ๋ก ํ๋์ string์ผ๋ก ๋ฐ๊ฟ์ค ํ์ Number ํ์
์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
์ต์ข
์ ์ผ๋ก num === Number(arr.join(''));
๋ผ๋ ์กฐ๊ฑด ์์ฒด๋ฅผ return ํด์ ๊ฒฐ๊ณผ๊ฐ์ true, false ๋ก ๋์ค๊ฒ ๋ง๋ฌด๋ฆฌ!
boolean ํ์ ์ returnํ ๋ ์ข ๋ง์ด ํท๊ฐ๋ฆฐ๋น....
ํญ์ return true / false ๋ก ์ง์ ํด๋ฒ๋ฆฌ๊ฒ ๋๋๋ฐ....
์ฌ์ค ์์ ๋ด ํ์ด์์๋ใ
return num.toString() === reverseNum;
์ด๋ ๊ฒ๋ง ํ์ด๋ true / false ๋ก ๋ฐํ๋๋๋ฐ ๊ตณ์ด ์ผํญ์ฐ์ฐ์๋ก ์กฐ๊ฑด์ ๋ฃ์ด์คฌ๋น....๐ฑ
const getPrefix = strs => {
let prefix = strs[0];
if(strs.length < 1) {
return '';
}
for(let i = 1; i < strs.length; i++) {
for(let j = 0; j < prefix.length; j++) {
if(strs[i][j] !== prefix[j]) {
prefix = strs[i].slice(0, j);
}
}
}
return prefix;
}
let strs = ['start', 'stair', 'step'];
console.log(getPrefix(strs)); // 'st'
ํ์๊ฐ ๊ผฌ๋ฐ ๋ค ์ด ๋ฌธ์ .......๐
์ฐ์ , prefix
๋ผ๋ ๋ณ์์ strs[0]
์ ํ ๋นํ๋ค!
์๋ฅผ ์ด์ฉํด์ strs ๋ฐฐ์ด์ ๋จ์๋ค์ ๋ค ๋น๊ตํ ๊ฑฐ๋ค! prefix
๋ ํ์ฌ start ์ธ ์ํ!
strs.length๊ฐ 0์ผ๋ ''
return ์ ๋จผ์ ์กฐ๊ฑด ๊ฑธ์ด ๋๊ณ ! for๋ฌธ์ ์ด์ค์ผ๋ก ๋๋ฆฐ๋น!
์๋? strs
์ [0], [1], [2]...๋ฒ์งธ ๋ฐฐ์ด์ ์ญ ํ์ด์ผ ํ๋๋ฐ,
ํ์๋ ๋ค์ strs
[0][0]...[0][1]...[0][2]... ์ด๋ ๊ฒ ๊ฐ๊ฐ์ ์ํํซ ๋ผ๋ฆฌ ๋ ๋น๊ตํด์ผ ํ๊ธฐ ๋๋ฌธ์!
๊ทธ๋์ ์ด์ค for ๋ฌธ ์์, strs[i][j] !== prefix[j]
๋ฅผ ์กฐ๊ฑด์ผ๋ก ๊ฑด๋ค!
๊ทผ๋ฐ ์ฌ๊ธฐ์
strs[0]
์ ํ์ฌprefix
๋๊น(๊ฐ์ start๋๊น)
for ๋ฌธ ๋๋ฆด๋i
๋ฅผ 1 ์ ์ธํ๊ณ ๋๋ ค์คฌ๋ค.
strs ๋ฐฐ์ด ์์ [i] ๋ฒ์งธ string ์์ [j] ๋ฒ์งธ ์ํ๋ฒณ์ด๋! ์ฒ์์ ๋ณ์ ์ ์ธํ prefix
= start ์ [j]๋ฒ์งธ ์ํ๋ฒณ๋ผ๋ฆฌ ๋น๊ตํ๋ค!
์ฒ์์๋
===
์ผ๋ก ๊ฐ์ ๊ฐ์ ๋น ๋ฐฐ์ด์push
ํ๋๊ฑฐ๋ก ์๊ฐํ๋๋ฐ, ์ฒ์์strs[0]
์ด๋strs[1]
๋ง ๋์๋ ๋๋ฌด ๋ง์ ๊ฐ์ดpush
๋์ด ๋ฒ๋ ค์.....ใทใทใท
๊ทธ๋ฅ===
๋ ์ ์ธํ๊ณ ,!==
์ผ๋, ์ฆ, ๊ฐ ์ํ๋ฒณ ๊ฐ์ด ๋ค๋ฅผ๋๋ฅผ ์กฐ๊ฑด์ผ๋ก ๊ฑธ์์!
๊ทธ๋์, ์ด๋ ๊ฒ ์กฐ๊ฑด์ด ๋ฌ๋ผ์ก์ ๋ ํ์ฌ start ๊ฐ ๋ด๊ฒจ์๋ prefix
๋ณ์๋ฅผ ๋ค์ ์ ์ํด์ค๋ค.
์ด๋ป๊ฒ!? strs[i]
= ํ์ฌ ์กฐ๊ฑด์ ๊ฑธ๋ฆฐ strs์ ์์๋ฅผ
.slice(0, j);
= ์ชผ๊ฐ ๋ค! 0๋ฒ์งธ ๊ธ์๋ถํฐ j๋ฒ์งธ ๊ธ์ ๊น์ง! (j๋ฒ์ ์ค๋ณต๋์ง ์์ ๊ธ์๋๊น!!)
๊ฒฐ๊ตญ ํ์ฌ prefix
์๋ strs[i][j]
๋ prefix[j]
์ค์ ์ค๋ณต๋๋ ๋ฌธ์๋ง ๋ค์ด๊ฐ ์๋๊ฒ!
์์ ์์์์๋ ์ฒ์ for ๋ฌธ ๋๋ ธ์๋,
prefix
= sta ๊ฐ ๋ค์ด๊ฐ๊ฒ ๋๋ ๊ฒ!!!!
๊ทธ๋ฆฌ๊ณ for ๋ฌธ์ ๊ณ์ ๋๋ฉด์ strs
๋ฐฐ์ด๋ด์ ๋ชจ๋ ์์๋ฅผ ์ฒดํฌํ๋ค๋ฉด? ๋ง์ง๋ง์ผ๋ก ์ ์๋ prefix
๋ฅผ return!
function getPrefix(strs) {
if (strs.length === 0) return โโ;
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;
}
์ผ๋จ.... ''
return ํ๋๊ฑฐ if (strs.length === 0) return โโ;
์ด๋ ๊ฒ ์งง๊ฒ ์ธ ์ ์์๊ตฌ๋ใ
ใ
.... ํ๋ ๋ฐฐ์ ๋ค๋ฆฌ!!!
๋ชจ๋ธ ์๋ฃจ์
์ for๋ฌธ์ ์ด์ค์ผ๋ก ์๋๋ฆฌ๊ณ while ์ ์ฌ์ฉํ๋ค!
while์ ์ด๋ ๋ ์จ์ผ ํ๋์ง ์ ํํ ๊ฐ์ด ์์จ๋ค....
์ฃผ๋ง๋์ ์๊ฐ๋ด์ for in
for of
while
์ ๋ํด ํ๋ฒ ์น ์ ๋ฆฌํด์ผ ๊ฒ ๋ค...
์๋ฌดํผ ๊ทธ๋์ strs[i].indexOf(prefix) !== 0
์ด๋ฉด, ์ฆ ๋ด๊ฐ ๊ฑธ์ด์คฌ๋ strs[i][j] !== prefix[j]
์ด ์กฐ๊ฑด์ด๋ ๊ฐ์๋ฐ, indexOf ๋ก ๋ ๊น๋ํ๊ฒ ์กฐ๊ฑด์ ๊ฑธ์ด์คฌ๋น...!
์ด ์กฐ๊ฑด์ ๊ฑธ๋ฆฌ๋ฉด, prefix
๋ฅผ prefix.substring(0, prefix.length - 1);
์ผ๋ก ์ฌ์ ์ํด์ค๋ค!
๐คท๐ปโโ๏ธ substring?
string ๊ฐ์ฒด์ ์์ ์ธ๋ฑ์ค๋ก ๋ถํฐ ์ข ๋ฃ ์ธ๋ฑ์ค ์ ๊น์ง ๋ฌธ์์ด์ ๋ถ๋ถ ๋ฌธ์์ด์ ๋ฐํํ๋ ๋ฉ์๋!
๐คท๐ปโโ๏ธ
slice
๋์ ๋ญ๊ฐ ๋ค๋ฅผ๊น??
๋์ ์ฐจ์ด์ ์ ๋ํด ์์ธํ ์ ๋ฆฌํ ๋ธ๋ก๊ทธ๊ฐ ์์ด ๋งํฌ ์ฒจ๋ถํฉ๋๋ค!
< ์ถ์ฒ : https://velog.io/@ktseo41/TIL-6%EC%9B%94-24%EC%9D%BC-slice-substring-%EB%B9%84%EA%B5%90 >