๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[Code Kata] ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ๊ฐ€๋ฆฌ๊ธฐ - JavaScript

 

๐Ÿ“† 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

์„ธ์ƒ ์‹ ๊ธฐํ•œ ์ฝ”๋“œ๋“ค์ด ๋งŽ๊ตฌ๋‚˜, ๊ฐํƒ„! ๋ฆฌ์ŠคํŽ™!