일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 재귀함수 탬플릿
- Math.floor()
- async/await
- props비구조화 할당
- 재귀적으로 생각하기
- align-iitems
- 조건문
- class
- 상속 (inheritance)
- Promise Chaining
- flex-direction
- css 정리
- Promise all
- 캡슐화 (encapsulation)
- 얕은복사와 깊은 복사
- string
- justfiy-content
- 추상화 (abstraction)
- 다형성 (polymorphism)
- 화살표함수 기본 개념
- align-content
- Instanc
- probs.children
- probs
- 문자열을 객체로 만드는법
- 클래스 문법 구조
- 첫번째 미니 프로잭트
- display
- 객체지향 프로그래밍 특징
- 참조자료형
Archives
- Today
- Total
희락코딩
프로그래머스 1단계 - 핸드폰 번호 가리기 본문
728x90
반응형
#문제
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
#제한 사항
s는 길이 4이상, 20이하인 문자열 입니다.
#입출력예시
phone_number | return |
"01033334444" | "*******4444" |
"027778888" | "*****8888" |
# 문제 풀이 및 코드작성
이문제를 풀기 위해서는 repeat메서드와 substring메서드를 알면 쉽게 접근 할 수 있는 문제입니다.repeat은 반복하는 함수입니다. "반복할거".repeat(반복할수) 라고 생각하면 됩니다.
그래서 "*".repeat(phone_number.length - 4); 여기 줄은 "*"가 폰넘버의 길이의 -4만큼 반복한다라고 생각하면 됩니다.
substing메서드와 length속성을 사용해 특정 문자열의 마지막 문자를 추출 할 수 있습니다.
그래서 phone_number.substring(phone_number.length - 4); 로 작성 하였고
이렇게 작성한 로직을 두개의 변수로 분리하여 두변수를 더해서 반환 하였습니다!
코드를 직관적으로 줄여 보니 아래 처럼 표현도 가능합니다!
1
2
3
4
5
6
7
8
9
10
11
12
|
// #1 변수나눠서 풀기(substring)
function solution(phone_number) {
const star = "*".repeat(phone_number.length - 4);
const lastNum = phone_number.substring(phone_number.length - 4);
return star+lastNum;
}
// #2 한번에 리턴때리기(substr)
function solution(phone_number) {
return "*".repeat(phone_number.length-4) + phone_number.substr(-4,4);
}
|
cs |
728x90
반응형
'프로그래밍 > 코드 문제 풀이' 카테고리의 다른 글
프로그래머스 1단계 - 자릿수 더하기 (0) | 2021.06.18 |
---|---|
프로그래머스 1단계 - x만큼 간격이 있는 n개의 숫자 (0) | 2021.06.17 |
프로그래머스 1단계 - 평균 구하기 (0) | 2021.06.15 |
프로그래머스 1단계 - 최대공약수와 최소공배수 (0) | 2021.06.15 |
프로그래머스 1단계 - 짝수와 홀수 (0) | 2021.06.14 |
Comments