https://programmers.co.kr/learn/courses/30/lessons/17677
โถ ์ฝ๋ :
function divide(p)
{
let temp = [];
let reg = new RegExp(/[a-z][a-z]/);
for (let i =0; i < p.length-1; i ++){
var data = p.slice(i,i+2);
if (reg.test(data)){
temp.push(data);
}
}
return temp
}
function solution(str1, str2) {
var answer = 0;
let strD1 = divide(str1.toLowerCase());
let strD2 = divide(str2.toLowerCase());
let temp = strD2.slice();//strD2๋ฅผ ๊น์ ๋ณต์ฌ
let intersection = [...strD1].filter(x => {
if (temp.includes(x))
{
temp.splice(temp.indexOf(x),1)
return true;
}
else{
return false;
}
});
let tempInter = intersection.slice();
//intersection์ ๊น์ ๋ณต์ฌ
let total = [...strD1].filter(x => {
if (tempInter.includes(x))
{
tempInter.splice(tempInter.indexOf(x),1);
return false;
}
else
{
return true;
}
}).concat(strD2);
if (total.length !== 0){
answer = (intersection.length/total.length) * 65536;
}
else{
answer = 65536;
}
return Math.floor(answer);
}
โถ ๋ฌธ์ ํ์ด :
- ์ต๊ทผ Javascript๋ก ์ฝ๋ฉํ ์คํธ๋ฅผ ์ค๋นํ๋ฉฐ ๋ฌธ์์ด ํ์ฑ๋ฌธ์ ๋ฅผ ๋ง์ด ํ์ด์๋ค.
- ๊ธฐ์กด Python์ ์ด์ฉํด ๋ฌธ์์ด ํ์ฑ ๋ฌธ์ ๋ค์ ํด๊ฒฐํด ์์๋๋ฐ JS์์๋ ํ์ด์ฌ๊ณผ ๊ฐ์ ์ธ๋ฑ์ค ์ฌ๋ผ์ด์ฑ์ ์ด๋ ค์ ๊ธฐ์ ๊ฐํน ๋ํดํ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค.
- JS๋ก ๋ฌธ์์ด ํ์ฑ์ ํ ๋ ์ ๊ทํํ์์ ๋ง์ด ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๊ฒ๋์๊ณ , ํด๋น ๋ฌธ์ ์๋ ์ ์ฉํด๋ณด์๋ค.
- divide() ํจ์์์ ๋ฌธ์์ด์ ๋๊ฐ์ฉ ์๋ฅด๊ณ , ์๋ผ์ง ๋ฌธ์์ด์ด ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์๋์ง๋ฅผ ์ ๊ทํํ์์ ์ด์ฉํด ํ์ธํ๋ค.
- ์ด๋ matchํจ์๋ฅผ ์ฌ์ฉํ์๋๋ฐ ์ด๊ธฐ ์ ๊ทํํ์์ 'g' ์ต์ ์ ๋ฃ์ด ๋ฌธ์์ด ์ ์ญ์ ๋ํด ๊ฒ์ฌ๋ฅผ ์งํํ์๋ค. ์ด๋ ์ด์ํ๊ฒ true false๊ฐ์ด ์ผ๊ด๋์ง ์๊ฒ ์ค์ ๋๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ ์ ์ญ ์ต์ ์ธ 'g'๋ฅผ ์ ๊ฑฐํ์๋์๋ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์๋ค.
- ์ด ๋ถ๋ถ์ ๋ํด์ ๊ณต๋ถ๊ฐ ๋ ํ์ํ ๋ฏํ๋ค.
- ๋ํ ํด๋น ๋ฌธ์ ์์๋ ๋ค์ค์งํฉ์ด๋ผ๋ ๊ฐ๋ ์ด ๋ฑ์ฅํ๋ค. ๋ค์ค ์งํฉ ๊ฐ๋ ๊ณผ ๊ด๋ จํด์ ์ฒ์ ์ฝ๋๋ฅผ ์๋ชป ์์ฑํ์๋ค.
- ์ด๋ก ์ธํด ๋ฌธ์์ด๋ค์ ๊ต์งํฉ๊ณผ ํฉ์งํฉ์ ์๊ฐํ๊ธฐ ์ด๋ ค์ ์กฐ๊ธ ๋ณต์กํ๊ฒ๋๋ง ๊ต์งํฉ๊ณผ ํฉ์งํฉ์ ๊ตฌํํ ๋ฏํ๋ค.
- ๊ต์งํฉ => intersecion , ํฉ์งํฉ => total
'๐ฏ CodingTest > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] (Javascript) ํํ (0) | 2022.04.25 |
---|---|
[Programmers] (Javascript) ์์ ์ต๋ํ (0) | 2022.04.25 |
[Programmers] (Javascript) ๊ดํธ ๋ณํ (0) | 2022.04.25 |
[Programmers] (Javascript) ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ (0) | 2022.04.21 |
[Programmers] (Javascript) ์คํ์ฑํ ๋ฐฉ (0) | 2022.04.21 |