
โญ๏ธ ์๊ณ ๋ฆฌ์ฆ(12) : ํธ๋ํฐ ๋ฒํธ ๊ฐ๋ฆฌ๊ธฐ _ Lv.1 โญ๏ธ
01. ๋ฌธ์ ์ค๋ช
๐งฉ ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ๋ฐ์ผ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ํด ๊ณ ์ง์๋ฅผ ๋ณด๋ผ ๋ ๊ณ ๊ฐ๋ค์ ์ ํ๋ฒํธ์ ์ผ๋ถ๋ฅผ ๊ฐ๋ฆฝ๋๋ค.
๐งฉ ์ ํ๋ฒํธ๊ฐ ๋ฌธ์์ด phone_number๋ก ์ฃผ์ด์ก์ ๋, ์ ํ๋ฒํธ์ ๋ท 4์๋ฆฌ๋ฅผ ์ ์ธํ ๋๋จธ์ง ์ซ์๋ฅผ ์ ๋ถ *์ผ๋ก ๊ฐ๋ฆฐ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
๐งฉ ์๋ฅผ ๋ค์ด "01033334444"๋ฅผ ์
๋ ฅํ๋ฉด "*******4444"๊ฐ ๋ฐํ๋ฉ๋๋ค.
๐งฉ - "027778888"๋ฅผ ์
๋ ฅํ๋ฉด "*****8888"๊ฐ ๋ฐํ๋ฉ๋๋ค.
๐ ์ ํ ์กฐ๊ฑด : phone_number๋ ๊ธธ์ด 4 ์ด์, 20์ดํ์ธ ๋ฌธ์์ด์
๋๋ค.
02. " solution.js " ๋ฌธ์ ํ์ด๋ณด๊ธฐ
๐ก ๋ฌธ์์ด ์ ์ฒด ๊ธธ์ด์์ 4๋ฅผ ๋บ๋งํผ '*'๋ฅผ ๋ฐ๋ณตํด์ ๋ฃ์ด์ฃผ๊ณ , ๋ฌธ์์ด์ ๋ท 4์๋ฆฌ๋ฅผ ๋ถ์ฌ๋ณด์.
function solution(s) { return "*".repeat(s.length - 4) + s.slice(-4); } console.log(solution("01033334444")) console.log(solution("027778888"))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 String.prototype.repeat( ) : ๋ฌธ์์ด์ ์ฃผ์ด์ง ํ์๋งํผ ๋ฐ๋ณตํด ๋ถ์ธ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค.
`2 String.prototype.slice( ) : ๋ฌธ์์ด์ ์ผ๋ถ๋ฅผ ์ถ์ถํ๋ฉด์ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค.
๋ฌธ๋ฒ โ str.slice(beginIndex, endIndex)
0๋ถํฐ ์์ํ๋ ์ถ์ถ ์์์ ์ธ index๋ถํฐ ์ถ์ถ ์ข
๋ฃ์ ์ธ๋ฑ์ค์ ์ง์ ๊น์ง ์ถ์ถ๋ฉ๋๋ค.
03. ๋ค๋ฅธ ํ์ด ์์๋ณด๊ธฐ
# 1) replace( )์ ์ ๊ทํํ์ ํ์ฉํ๊ธฐ
function solution(s) { return s.replace(/\d(?=\d{4})/g, "*"); } console.log(solution("01033334444")) console.log(solution("027778888"))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 String.prototype.replace( ) : ์ด๋ค ํจํด์ ์ผ์นํ๋ ์ผ๋ถ ๋๋ ๋ชจ๋ ๋ถ๋ถ์ ์๋ก์ด ๋ฌธ์์ด๋ก ๊ต์ฒดํ์ฌ ๋ฐํํฉ๋๋ค.
`2 ์ ๊ท ํํ์ : ๋ฌธ์์ด์์ ํน์ ๋ฌธ์ ์กฐํฉ์ ์ฐพ๊ธฐ ์ํ ํจํด์
๋๋ค.
JavaScript์์๋ ์ ๊ท ํํ์๋ ๊ฐ์ฒด์ ํฌํจ๋ฉ๋๋ค. RegExp์ exec( )์ test( ) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทํํ์์ ๋ง๋ค ์ ์์ต๋๋ค.
# 2) for๋ฌธ๊ณผ charAt( ) ํ์ฉํ๊ธฐ
function solution(s){ let result = "" for(let i=0; i < s.length; i++){ result += i < s.length -4 ? "*" : s.charAt(i); // ์ซ์์ ์ ๋์ฝ๋ ๊ฐ์ ์ซ์ ๊ทธ๋๋ก์ ๊ฐ. } return result; } console.log(solution("01033334444")) console.log(solution("027778888"))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 for๋ฌธ : ๊ดํธ ์์ ์์ ๋ฐ๋ณต ์คํํฉ๋๋ค.
`2 String.prototype.charAt( ) : ๋ฌธ์์ด์์ ํน์ ์ธ๋ฑ์ค์ ์์นํ๋ ์ ๋์ฝ๋ ๋จ์ผ๋ฌธ์๋ฅผ ๋ฐํํฉ๋๋ค.
# 3) fill( )๊ณผ join( ) ํ์ฉํ๊ธฐ
const solution = n => [...n].fill( "*", 0, n.length -4 ).join("") // ๋ฌธ์์ด n ์ ๋ฐฐ์ด๋ก ๋ณต์ฌํ๊ณ , ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์๋ถํฐ ๋ค์์ 4๋ฒ์งธ ์์๊น์ง "*"๋ก ์ฑ์ด ๋ค์, ํฉ์ณ์ ๋ฌธ์์ด๋ก ๋ฐํํ์์ค. console.log(solution("01033334444")) console.log(solution("027778888"))
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 Array.prototype.fill( ) : ๋ฐฐ์ด์ ์์ ์ธ๋ฑ์ค๋ถํฐ ๋ ์ธ๋ฑ์ค์ ์ด์ ๊น์ง ์ ์ ์ธ ๊ฐ ํ๋๋ก ์ฑ์๋๋ค.
๋ฌธ๋ฒ โ arr.fill(value[, start[, end]])
์์ โ [1, 2, 3].fill(5); // [5, 5, 5]
`2 (... ) : ํผ์นจ์ฐ์ฐ์ โ ๋ฐฐ์ด ๋ณต์ฌ
`3 Array.prototype.join( ) : ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ๊ฒฐํฉํ์ฌ ํ๋์ ๋ฌธ์์ด๋ก ๋ฐํํฉ๋๋ค.
๋ฐํ๊ฐ์ผ๋ก ๋์ค๋ ๋ฌธ์์ด์ ๊ตฌ๋ถ์(๋์ด์ฐ๊ธฐ, ํน์๋ฌธ์, - ๋ค์, ๋ฑ)์ ์ง์ ํ ์ ์์ต๋๋ค.
'Algorithm_JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ณ ๋ฆฌ์ฆ(13) : ์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ _ Lv.1 (4) | 2022.11.08 |
---|---|
์๊ณ ๋ฆฌ์ฆ(11) : ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ _ Lv.1 (2) | 2022.11.06 |
์๊ณ ๋ฆฌ์ฆ(10) : ์๋ฆฟ์ ๋ํ๊ธฐ _ Lv.1 (1) | 2022.11.06 |
์๊ณ ๋ฆฌ์ฆ(9) : ๋๋จธ์ง๊ฐ 1์ด ๋๋ ์ ์ฐพ๊ธฐ _ Lv.1 (4) | 2022.11.04 |
์๊ณ ๋ฆฌ์ฆ(8) : ์์ธ์์ ๊น์๋ฐฉ ์ฐพ๊ธฐ _ Lv.1 (1) | 2022.11.03 |
๋๊ธ