본문 바로가기
코테연습

12.Credit Card Mask

by hxunz 2022. 3. 21.

Description:

Usually when you buy something, you're asked whether your credit card number, phone number or answer to your most secret question is still correct. However, since someone could look over your shoulder, you don't want that shown on your screen. Instead, we mask it.

Your task is to write a function maskify, which changes all but the last four characters into '#'.

Examples

maskify("4556364607935616") == "############5616"
maskify(     "64607935616") ==      "#######5616"
maskify(               "1") ==                "1"
maskify(                "") ==                 ""

// "What was the name of your first pet?"
maskify("Skippy")                                   == "##ippy"
maskify("Nananananananananananananananana Batman!") == "####################################man!"

 

 

function maskify(cc) {
  const n = cc.length;
  const number = cc.substring(n-4);
  let newNumber = '';
  if (n <= 4) {
    return cc
  }
  else {
    for (i = 0; i < n-4; i++) {
      newNumber += '#';
    }
    return newNumber + number;
  }
}

먼저 주어진 숫자의 길이를 구했다. 

그리고 숫자의 맨 뒤 네자리는 숫자로 리턴되어야하기 때문에 substring()을 사용했다.

맨 뒤 네자리 숫자는 그대로 리턴하고 그 앞에 숫자들은 #이라는 문자로 대체 되어야하기 때문에 이 둘을 각각 구해서 한곳에 담을 수 있는 

let newNumer = ''; 이렇게 선언해줬다. 

if문을 사용해서 주어진 숫자의 길이가 네자리 이하면 그냥 주어진 숫자 cc를 그대로 리턴하고

그렇지 않으면 for문을 사용해서 주어진 숫자 길이에서 -4 해준 길이까지(뒤에 네자리는 숫자 그대로 리턴해야하기 때문에) 반복하게 해주고 newNumber 안에 #을 넣어줬다. 

그리고 newNumber랑 number를 더해서 리턴하게 해주었다.

'코테연습' 카테고리의 다른 글

14.Sum of two lowest positive integers  (0) 2022.03.24
13.Sum of Numbers  (0) 2022.03.22
11.Complementary DNA  (0) 2022.03.20
10.Jaden Casing Strings  (0) 2022.03.20
9.Shortest Word  (0) 2022.03.18

댓글