-
[알고리즘/자바스크립트] 배열에 요소 추가하고 합치기 (Create Phone Number)Algorithm 2019. 2. 24. 21:05
-해당 문제는 codewars사이트의 level6 문제입니다. (1~8단계 중 8단계가 가장 쉬운 레벨)-
[문제] Write a function that accepts an array of 10 integers (between 0 and 9), that returns a string of those numbers in the form of a phone number.
Example:
createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) // => returns "(123) 456-7890"
The returned format must be correct in order to complete this challenge.
Don't forget the space after the closing parentheses!
[해석] 0과 9사이의 숫자 10개가 든 배열을 받아서 (123) 456-7890의 형태로 만들어라.
휴 내 기준 어려운 문제 풀다 멘탈이 털려서 그런지 이 문제는 참 쉽게 느껴졌다.
6레벨이라고 나온 문제지만 7~8레벨 정도 되는 문제인듯.
배열을 join()시켜서 substring을 이용해도 될거같고
배열에 splice로 요소를 집어넣어서 마지막에 join해도 될거같음.
function createPhoneNumber(numbers){ numbers.unshift('(') numbers.splice(4, 0, ') ') numbers.splice(8, 0, '-') return numbers.join('') }
1) 배열 맨 처음에 unshift()로 '('를 집어넣었다.
2) 그리고 4번째에 ') '를 splice로 넣음. ) 뒤에 공백을 빼먹지 말자.
3) 8번째 항목에 '-'를 추가한다.
-여기서 핵심은 무언가를 unshift나 splice로 추가하면 그 추가된 요소 다음 요소들의 index가 하나씩 밀린다는거다.
그러니까 splice를 사용할 때 index번호를 잘 써줘야 한다.
4) 마지막으로 모든 요소들을 join시키면 전화번호가 잘 반환되어 나온다!
반응형'Algorithm' 카테고리의 다른 글
[알고리즘/자바스크립트] 배열의 값으로 수량 체크하기 (Help the bookseller!) (0) 2019.03.03 [알고리즘/자바스크립트]스도쿠 판별 알고리즘 (Did I Finish my Sudoku?) (0) 2019.03.02 [알고리즘/자바스크립트] 두 객체를 비교하여 케이크 만들 수 있는 최대 횟수 구하기 (Pete, the baker) (0) 2019.02.24 [알고리즘/자바스크립트] 배열의 특정요소만 맨 뒤로 옮기기 (Moving Zeros To The End) (0) 2019.02.24 [알고리즘/자바스크립트] 어떤 값의 개수가 홀수인지 판별하기 (Find the odd int) (0) 2019.02.24 COMMENT