
๐ 2024๋ 5์ 25์ผ
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋์นดํ 27๋ฒ๋ฌธ์ - ํธ๋ํฐ ๋ฒํธ ๊ฐ๋ฆฌ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/12948
โ ๋ฌธ์ ์ค๋ช
ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ๋ฐ์ผ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ํด ๊ณ ์ง์๋ฅผ ๋ณด๋ผ ๋ ๊ณ ๊ฐ๋ค์ ์ ํ๋ฒํธ์ ์ผ๋ถ๋ฅผ ๊ฐ๋ฆฝ๋๋ค.
์ ํ๋ฒํธ๊ฐ ๋ฌธ์์ด phone_number๋ก ์ฃผ์ด์ก์ ๋, ์ ํ๋ฒํธ์ ๋ท 4์๋ฆฌ๋ฅผ ์ ์ธํ ๋๋จธ์ง ์ซ์๋ฅผ ์ ๋ถ *์ผ๋ก ๊ฐ๋ฆฐ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
- ์ ํ์ฌํญ
phone_number๋ ๊ธธ์ด 4 ์ด์, 20์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค.
- ์ ์ถ๋ ฅ ์ 1
"01033334444" "*******4444"
- ์ ์ถ๋ ฅ ์ 2
"027778888" "*****8888"
โ ๋ฌธ์ ํ์ด
1. ์ฝ๋
function solution(phone) {
const last4 = phone.slice(-4);
const mask = "*".repeat(phone.length - 4);
return mask + last4;
}
console.log(solution("01011112222"));
ํด์ค / ์ก์ค
์ฐ์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ๋ฒํธ๋ฅผ ๋ง์ง๋ง 4๊ธ์๋ฅผ ๋ฐ์ last4 ๋ณ์์ ์ ์ฅํ๋ค.
phone ๋งค๊ฐ๋ณ์์ ๊ธธ์ด์์ -4๋ฅผ ํ ๊ฐ๋งํผ *์ ๋ง๋ค์ด mask ๋ณ์์ ์ ์ฅํ๋ค.
mask ๋ณ์์ last4 ๋ณ์๋ฅผ ๋ํ์ฌ return ํ๋ค.
โ๏ธ ์ฐธ๊ณ ํ ์ข์ ์ฝ๋
const solution = n => [...n].fill("*",0,n.length-4).join("")
// ์๋๋ ํ
์คํธ๋ก ์ถ๋ ฅํด ๋ณด๊ธฐ ์ํ ์ฝ๋์
๋๋ค.
console.log("๊ฒฐ๊ณผ : " + solution('01033334444'));
ํด์ค / ์ก์ค
์ด๊ฒ ๋จธ์๋น๊ฐ...
[...n] : ์ ๋ ฅ๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐฐ์ด๋ก ๋ณํ ํ๋ค.
.fill("*", 0, n.length-4) : ๋ฐฐ์ด์ fill ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์ฒ์๋ถํฐ ๋ค์์ 4๋ฒ์งธ ์๋ฆฌ ์ด์ ๊น์ง์ ์์๋ฅผ *๋ก ์ฑ์ด๋ค.
.join("") : ๋ฐฐ์ด์ join ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ๋น ๋ฌธ์์ด์ ๊ธฐ์ค์ผ๋ก ํ๋์ ๋ฌธ์์ด๋ก ๊ฒฐํฉํ๋ค.
function hide_numbers(s){
return s.replace(/\d(?=\d{4})/g, "*");
}
// ์๋๋ ํ
์คํธ๋ก ์ถ๋ ฅํด ๋ณด๊ธฐ ์ํ ์ฝ๋์
๋๋ค.
console.log("๊ฒฐ๊ณผ : " + hide_numbers('01033334444'));
ํด์ค / ์ก์ค
์๋ฐ ์ด๊ฑด ๋ ๋จธ์๋น๊ฐ.;;;;; ์ธ๊ณ์ด๋ค;;
s.replace(/\d(?=\d{4})/g, "*") : ๋ฌธ์์ด์ replace ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ท ํํ์ \d(?=\d{4})์ ํด๋นํ๋ ๋ถ๋ถ์ *๋ก ๋์ฒดํ๋ค.
- \d : ์ซ์์ ํด๋นํ๋ ์ ๊ท ํํ์
- (?=\d{4}) : ๊ธ์ ํ ์ ๋ฐฉ ํ์์ ์ฌ์ฉํ์ฌ, ๋ค์ด์ด 4๊ฐ์ ์ซ์๊ฐ ์๋ ๋ถ๋ถ์ ๋์
- g : ์ ์ญ ๊ฒ์ ํ๋๊ทธ๋ก, ๋ฌธ์์ด ๋ด์ ๋ชจ๋ ๋ถํฉํ๋ ๋ถ๋ถ์ ์ฐพ๋๋ค.
๐ TIL
์ธ์ ์ ๊ธฐํ ์ฝ๋๋ค์ด ๋ง๊ตฌ๋, ๊ฐํ! ๋ฆฌ์คํ!