230320_Algorithm

majungha·2023년 4월 27일
1

알고리즘

목록 보기
5/71

오늘의 알고리즘 👍

📝 1. 같은 숫자는 싫어


  • 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다.
  • 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다.
  • 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다.
  • 예를 들면,
    • 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 함수를 완성해 주세요.

▷ 입출력 예

solution([1, 1, 3, 3, 0, 1, 1]); // [1,3,0,1]
solution([4, 4, 4, 3, 3]); // [4,3]

▷ 내 풀이

function solution(arr) {
  var answer = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] !== arr[i + 1]) {
      answer.push(arr[i]);
    }
  }
  return answer;
}

▷ 수업 풀이

function solution(arr) {
    const answer = [];

    for( let i = 0; i < arr.length; i++ ) {
        if( arr[i] !== answer[answer.length-1] ) {
            answer.push( arr[i] )
        }
    }
    return answer;
}

📝 2. 짝수와 홀수


  • 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.

▷ 입출력 예

solution(3) // "Odd"
solution(4) // "Even"

▷ 내 풀이

function solution(num) {
  var answer = "";
  if (num % 2 === 0) {
    answer = "Even";
  } else {
    answer = "Odd";
  }
  return answer;
}

▷ 삼항연산자 사용 풀이

function solution(num) {
    return num % 2 === 0 ? 'Even' : 'Odd'
}

📝 3. 평균 구하기


  • 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

▷ 입출력 예

solution([1, 2, 3, 4]); // 2.5
solution([5, 5]); // 5

▷ 내 풀이

function solution(arr) {
  let sum = 0;
  for (let i = 0; i < arr.length; i++) {
    sum = sum + arr[i];
  }
  return sum / arr.length;
}

▷ reduce 매서드 사용 풀이

function solution(arr) {
    const sum = arr.reduce( (acc, cur) => {
        return acc + cur
    }, 0)
    return sum / arr.length;
}

📝 4. 핸드폰 번호 가리기


  • 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
  • 전화번호가 문자열 phone_number로 주어졌을 때,
  • 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

▷ 입출력 예

solution("01033334444") // '*******4444'
solution("027778888") // '*****8888'

▷ 내 풀이

function solution(phone_number) {
  let aaa = phone_number.slice(0, -4);
  aaa = aaa.replace(/[0-9]/gi, "*");
  let bbb = phone_number.slice(-4);
  return aaa + bbb;
}

출처: 프로그래머스
출처: 코드캠프

profile
개발자 블로그 / 항상 겸손한 자세로 배우면서 성장하자 할 수 있다!

0개의 댓글