Koras02
Koras02코딩웹
Koras02
전체 방문자
오늘
어제
  • 분류 전체보기 (299)
    • 백엔드 (59)
      • nestjs (2)
      • Ruby (3)
      • PostgresQL (11)
      • MySQL (5)
      • Haskell (7)
      • Koa (3)
      • Java (3)
      • Python (5)
      • Rust (5)
      • MongoDB (2)
      • PHP (3)
      • Spring Boot (1)
      • redis (5)
      • deno (2)
    • 웹서버 (3)
      • nginx (1)
      • Apache (2)
      • Google Web Server (0)
    • 모바일개발 (5)
      • Figma (0)
      • React Native (2)
      • swift (0)
      • Flutter (3)
      • Kotlin (0)
    • 프론트 엔드 (158)
      • HTML (34)
      • CSS (7)
      • Javascript (35)
      • Angular (0)
      • Typescript (2)
      • React (58)
      • Vue (2)
      • GIT (6)
      • GraphQL (1)
      • Doker (4)
      • Go (8)
      • svelte (1)
      • gatsby (0)
    • etc. (47)
      • Notion (0)
      • TIL (24)
      • Algorithm (17)
      • Algorithm 개념 정리 (2)
      • Wiki (3)
      • Official document (1)
    • 웹개념 (12)
    • 변수정리 (1)
    • VSCode (2)
    • 포트폴리오 분석 (2)
      • React (2)
    • os (5)
      • 윈도우 (4)
      • Mac (0)
      • 가상머신 (0)
      • linux (1)
    • 응용프로그램언어 (2)
      • C (2)
      • C++ (0)
      • C# (0)
    • 블로그 운영관련 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
글쓰기

공지사항

  • [공지사항] 개발 이슈나 공식문서 업데이트 업로드 예정입니⋯

인기 글

태그

  • html
  • React
  • 프로그래머스
  • Haskell
  • Flutter
  • koa
  • html5
  • CSS
  • 알고리즘
  • PostgreSQL
  • 하스켈
  • Rust
  • 문자열
  • Til
  • javascript
  • redis
  • 데이터 타입
  • go
  • mysql
  • Java

티스토리

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
Koras02

Koras02코딩웹

[프로그래머스 알고리즘 테스트]  핸드폰 번호 가리기
etc./Algorithm

[프로그래머스 알고리즘 테스트] 핸드폰 번호 가리기

2022. 1. 17. 09:54
728x90

1. 문제 

프로그래머스 모바일은 개인정보 보호를 위한 고지서를 보낼 때 고객들의 전화번호 일부를 가린다.

전화번호 문자열 phone_number이 주어질때, 전화번호 뒷 4자리를 제외한 나머지 숫자를 전부 *로 가린 

문자열을 리턴하는 함수, solution을 완성하세요.

 

2.제한 조건

  • s는 길이 4이상, 20 이하면 문자열이다.
  • 전화번호 뒷 4자리를 제외한 나머지 숫자를 전부 *로 가린 문자열을 리턴해준다.

3.문제 풀이

function solution(num) {
    const len = num.length - 4;
    return "*".repeat(len) + num.substring(len)
}

slice문법을 사용한 풀이법

function solution(pNum) {
    return pNum.slice(-4).padStart(pNum.length, '*')
}

slice,padStart를 사용해 repeat을 이용하면 된다.

slice에 -4를 하면 해당 문자열 뒤에서부터 4글자를 뽑아주니 간편하게 출력이 가능하다.

 

 

멘토님의 풀이법

function solution(phone_number) {
    let answer = "";
    
    // 전환되는 시점에서 반복문 
    // 마지막 4자리는 별표와 아니면 원래 데이터 for문사용
    for (let i = 0; i < phone_number.length; i++) {
          console.log(i, phone_number[i]);
        // 4자리에 첫번째를 들어오는 번호는 5 index 가 됨 
        // 3을 뺸 값인 5부터 뒤 4자리로 판단 해 5 index 앞지라 *추가
        // 7인덱스 앞까지 6은 다 * 처리
        // 뒤에 4자리 뺸 수보다 작을때까지 
        // 7보다 작을떄까지 0부터 6까지해서 6번째 index까지 
        // 5보다 작은 4인덱스 까지 찾는다.
        if ( i < phone_number.length - 4) {
            // 뒤 4자리는 * 처리
            answer += "*"
            // answer = answer + "*"; 축약해서 사용     
        } else {
            // 뒤에 4자리라면 answer 값에 기존에 있는 데이터값 넣는다.
            // 뒷 4자리를 그대로 넣어준다.
            
            answer += phone_number[i]
        };
        
    }
    // 뒤 4자리를 넣어준뒤 앞 *를 return
    return answer;
    
    console.log(answer)
}
str = "abcde";
// slice가 두번째 인자로 해당 inde까지 가 아닌 3번째 인덱스를 제외한 2번쨱 index까지 자른다는 뜻
// 해당 index slice를 짤라온 값 +1 해야 불러올수 있다.
str = str.slice( 1, 4 );

str
function solution(phone_number) {
    let answer = "";
    
    // 전환되는 시점에서 반복문 
    // 마지막 4자리는 별표와 아니면 원래 데이터 for문사용
    for (let i = 0; i < phone_number.length; i++) {
          console.log(i, phone_number[i]);
        // 4자리에 첫번째를 들어오는 번호는 5 index 가 됨 
        // 3을 뺸 값인 5부터 뒤 4자리로 판단 해 5 index 앞지라 *추가
        // 7인덱스 앞까지 6은 다 * 처리
        // 뒤에 4자리 뺸 수보다 작을때까지 
        // 7보다 작을떄까지 0부터 6까지해서 6번째 index까지 
        // 5보다 작은 4인덱스 까지 찾는다.
        if ( i < phone_number.length - 4) {
            // 뒤 4자리는 * 처리
            answer += "*"
            // answer = answer + "*"; 축약해서 사용     
        } else {
            // 뒤에 4자리라면 answer 값에 기존에 있는 데이터값 넣는다.
            // 뒷 4자리를 그대로 넣어준다.
            
            // phone_number 뒤 4자리를 뺸 값인 7 index 부터 가져옴 
            // 문자열 마지막 데이터까지 자라옴
            // 12fmf제외한 6자리까지 잘라줌
            answer += phone_number.slice(phone_number.length - 4, phone_number.length );
            return answer
        };
        
    }
    // 뒤 4자리를 넣어준뒤 앞 *를 return
    // return answer;
    
    // console.log(answer)
}

 

참고자료

 

[프로그래머스] 핸드폰 번호 가리기 | javascript

[프로그래머스] 핸드폰 번호 가리기 | javascript level 1 문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_nu

habitual-history.tistory.com

 

 

[프로그래머스] 핸드폰 번호 가리기(JavaScript)

문제 출처전화번호가 문자열 phone_number로 주어졌을 때전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 \*으로 가린 문자열을 리턴결론

velog.io

 

'etc. > Algorithm' 카테고리의 다른 글

[프로그래머스 알고리즘 테스트] 짝수와 홀수  (0) 2022.01.17
[알고리즘 테스트] 문자열 정수로 변환하기  (0) 2022.01.17
[알고리즘 테스트 대비] 사분면 고르기  (0) 2022.01.17
    'etc./Algorithm' 카테고리의 다른 글
    • [알고리즘 테스트] 체육복
    • [프로그래머스 알고리즘 테스트] 짝수와 홀수
    • [알고리즘 테스트] 문자열 정수로 변환하기
    • [알고리즘 테스트 대비] 사분면 고르기
    Koras02
    Koras02
    현재 사용중인 언어 - next-js,react,vue, typescript

    티스토리툴바