알고리즘 TIL(Padstart, slice) by JavaScipt

김재범·2022년 7월 12일
0

알고리즘TIL

목록 보기
1/9
  1. 같은 숫자는 싫어
    arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return
    arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.
    배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.

1) 현재 배열 arr[i]와 다음 배열 arr[i+1]이 다르면 arr[i]를 추가하는 방식

arr[i] !== arr[i+1] 일 때 변수 선언한 빈 배열 answer에 arr[i]를 추가(push)

if문과 for문 활용

function solution(arr)                       <== 1) solution 함수
	const answer = [] ;                      <=  2) 빈 배열 answer 생성
  for(let i = 0 ; i < arr.length ; i++)      <== 3) for 반복문을 통해 arr.legnth 전까지 실행
   {if(arr[i] !== arr[i+1])                  <== 4) arr i번째 배열의 값과 arr i+1번째 배열의 값이 다르면
   {answer.push(arr[i])}}                    <== 5) answer에 arr[i]값 추가
   return(answer)}                           <== 6) answer값 리턴
   

2) 핸드폰번호 가리기
전화번호가 문자열 phone_number로 주어졌을 때,
전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

1) length를 이용하여 앞자리는 *을 추가, 뒤는 index를 이용하여 번호를 추가하는 방식

function solution(phone_number)                     <-- 1) solution 함수
  {let answer = '';                                 <-- 2) 빈 문자열 변수 answer 생성
    for(let i = 0 ; i < phone_number.length ; i++)  <-- 3) for 반복문 phone.number.length전까지 실행
      {if(i<phone_number.length - 4)                <-- 4) 만약 i가 phone_number 총 길이-4면
      {answer = answer + "*"}                       <-- 5) answer에 * 추가
      else{answer = answer + phone_number[i]}       <-- 6) 그렇지 않으면 answer에 phone_number[i] 추
  }
     return answer;                                 <-- 7) answer값 리턴
}

   

2) pad start를 이용하여 *을 추가 / slice를 하여 앞자리 자르는 방식

	function solution(phone_number)                          <--1) solution 함수
      {let answer = ``;                                      <--2) answer는 공백 변수   
      answer += answer.padStart(phone_number.length -4, `*`) <--3) phone_number-4 까지 *로 채운다                  
      answer += phone_number.slice(phone_number.length -4    <--4) phone_number -4 인덱스부터 채운다
      return answer}
      
      

padStart(), padEnd()

padStart() 함수는 string에 쓸 수 있는 함수

문자열.padStart(length)
문자열.padStart(length, padString)
length에는 목표하는 문자열의 길이를 적는다.
padString에는 빈 공간에 채워넣을 문자열을 적으면 된다. padString을 적지 않을 경우 default값은 공백
ex) 문자열.padStart(3, "0"); // 세 자리 숫자로 표현되고, 빈 곳은 0으로 채우기

slice()

slice 함수는 원본 배열은 유지하고 begin부터 end까지(end 미포함)의 새로운 배열 객체를 반환합니다.
arr.slice(begin, end)

ex) let array = [1,2,3,4,5]
array.slice(0, 3)
console.log(array) => [1,2,3]

! 0번째 인덱스인 1은 포함, 3번째 인덱스인 4는 미포함

profile
지식을 쌓고 있습니다.

0개의 댓글