본문 바로가기
Algorithms/코테 문풀

[프로그래머스] 핸드폰 번호 가리기 - JavaScript / repeat(), fill(), 정규 표현식 풀이

by hi-rachel 2023. 1. 21.

✏️ 문제 설명

제일 직관적이고 깔끔한 코드

 

const solution = n => [...n].fill("*",0,n.length-4).join("")

n을 복사해 배열로 바꿔주고 fill() 메서드로 처음부터 마지막 4개를 제외하고 바로 *로 채워주는 풀이

 

Array.prototype.fill()

// Syntax
fill(value)
fill(value, start)
fill(value, start, end)

 

: fill() 메서드는 배열의 모든 요소를 시작 인덱스(기본값 0)에서 끝 인덱스(기본값 array.length)까지 정적 값(static value)으로 변경수정된 배열을 반환한다.

 

const array1 = [1, 2, 3, 4];

// Fill with 0 from position 2 until position 4
console.log(array1.fill(0, 2, 4));
// Expected output: Array [1, 2, 0, 0]

// Fill with 5 from position 1
console.log(array1.fill(5, 1));
// Expected output: Array [1, 5, 5, 5]

console.log(array1.fill(6));
// Expected output: Array [6, 6, 6, 6]

 

매개변수(Parameters)

value : 배열을 채울 값, 배열의 모든 요소는 정확한 value 값이 된다. 객체인 경우 배열의 각 슬롯은 해당 객체를 참조한다.

 

start (선택) : 채우기를 시작할 0부터 시작하는 인덱스로 정수로 변환된다.

- 음수 인덱스는 배열의 끝에서 다시 카운트된다. start < 0이면 start + array.length가 사용.

- start < -array.length 또는 start 생략하면 0이 사용됨.

- start >= array.length인 경우 인덱스가 채워지지 않는다.

 

end (선택) : 채우기를 종료할 0부터 시작하는 인덱스로 정수로 변환된다. fill()까지 채우지만 end는 포함하지 않는다.

- 음수 인덱스는 배열의 끝에서 다시 카운트된다. end < 0이면 end + array.length가 사용.

- end < -array.length이면 0이 사용됨.

- end >= array.length 또는 end 생략하면 array.length 사용되어 끝까지 모든 인덱스가 채워진다.

- end가 start 정규화(normalization) 전이나 후에 위치하면 인덱스가 채워지지 않는다.

 

반환 값(Return value)

value로 채워진 수정된 배열.

 


 

 

한 문제로 다양한 풀이가 나옴이 재밌어서 정리해 봤다.

 

🙂 공부하며 정리하는 글입니다. 잘못된 점이 있다면 피드백 주시면 감사합니다.