2주차 알고리즘 테스트

majungha·2023년 3월 27일
1

알고리즘

목록 보기
9/71

오늘의 알고리즘 테스트 👍

📝 1. 객체 속성 추가하기


  • 두 개의 객체 obj1, obj2가 주어집니다.
  • obj1과 obj2의 키-값 쌍을 합쳐서 리턴해주세요.
  • obj1과 obj2를 합치는 과정에서 중복되는 키가 존재한다면, obj1의 키-값 쌍을 기준으로 하여 합칩니다.
  • Object.assign() 메소드의 사용은 금지됩니다.

▷ 입출력 예

addNew({a: 1, b: 2}, {b: 3, c: 3}) // { a: 1, b: 2, c: 3 }

▷ 내 풀이

function addNew(obj1, obj2) {
// 여기에서 작업하세요.
  let mergedObj = { ...obj2, ...obj1 };
  return mergedObj;
}

▷ for-in 매서드 사용 풀이 1

function addNew(obj1, obj2) {
  for (let key in obj2) {
    if (!obj1[key]) {
      obj1[key] = obj2[key];
    }
  }
  return obj1;
}

▷ for-in 매서드 사용 풀이 2

function addNew(obj1, obj2) {
  for (let key in obj1) {
  obj2[key] = obj1[key];
}
return obj2;
}

📝 2. 공백 제거


  • 영어 단어가 담긴 문자열 word가 주어집니다.
  • 해당 단어에는 사이 사이에 공백이 존재합니다.
  • 공백은 여러 칸일 수도 있습니다. "a b c"
  • 해당 공백을 제외시킨 문자열을 리턴해주세요.

▷ 입출력 예

noSpaces("c od e cam p") // "codecamp"

▷ 내 풀이

function noSpaces(word) {
  //여기에서 작업하세요.
  let qqq = "";
  for (let i = 0; i < word.length; i++) {
    word[i] === " " ? (qqq += "") : (qqq += word[i]);
  }
  return qqq;
}

▷ new Date 매서드 사용 풀이

function specialDay(month, day) {
  // 여기에서 작업하세요.
  if (month === 2 && day === 19) return "Special";
    return new Date(`${month}-${day}`) < new Date("2-19") 
    		? "Before" 
            : "After";
}

📝 3. 특별한 날


  • 2월 19일은 hoony에게 특별한 날입니다.
  • specialDay 함수는 매개변수로 월과 일자인 month와 day를 받습니다.
  • 해당 월과 일자가 2월 19일보다 이전이면 'Before', 이후라면 'After',
  • 당일이라면 'Special'을 리턴해주세요.
  • month는 1에서 12사이, day는 1에서 31사이의 정수입니다.

▷ 입출력 예

specialDay(2, 15) // 'Before'

▷ 내 풀이

function specialDay(month, day) {
  // 여기에서 작업하세요.
  if (month >= 1 && month <= 12 && day >= 1 && day <= 31) {
    if (month <= 2 && day < 19) {
      return "Before";
    } else if (month === 2 && day === 19) {
      return "Special";
    } else {
      return "After";
    }
  }
}

▷ split join 매서드 사용 풀이

function noSpaces(str) {
  return str.split(" ").join("");
}

오늘의 마무리 👍


오늘은 알고리즘 테스트를 처음 봤는데 1번 문제를 보고 난이도가 진짜 어렵구나라고 생각했는데 2번 3번 문제는 비교적 간단하게 풀어서 시간내에 풀 수 있었던 것 같습니다. 오늘부터 미니프로젝트를 시작하는데 잘할 수 있을까 걱정이 됩니다.


출처 : 코드캠프

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

0개의 댓글