Daily Coding 1, 2

Haizel·2022년 11월 18일
0

🧬 알고리즘 풀이

목록 보기
12/53
post-thumbnail

Q1. 배열을 입력 받아 차례로 배열의 첫 요소와 마지막 요소를 키와 값으로 하는 객체를 리턴하라.

  • 입출력 예시 : let arr = ['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce']; //--> { Queen : 'Beyonce' }
  • 빈 배열일 경우, 빈 객체를 리턴하라
function transformFirstAndLast(arr) {
 //1. 빈 객체를 하나 선언한다.
 let result = {};
 if(arr.length > 0) {
 //2. 객체의 키값으로 배열의 첫번째 인덱스 요소를, value값으론 배열의 마지막 인덱스 요소를 할당한다
  result[arr[0]] = arr[arr.length-1];
  } 
 return result;
}

💡 내가 놓친 것들

  • 객체의 값을 조회하는 방법
  1. 반 노테이션 : user.firstname; //'steve'
  2. 대괄호 노테이션 : user['firstname']; //'steve'
    ✅ 반 노테이션은 동적(key값이 변할 때)일 때 시용할 수 없다.
    ✅ 대괄호 노테이션은 key값이 동적일 때 사용할 수 있으며, 대괄호 안에 문자열 형식으로 작성한다.
  • 객체 내 키의 값을 변경하는 방법
    obj['key값'] = 새로운 vaule값 넣어준다 : user['firstname']; //'steve'

💡 추가로 배운 것

  • rest파라미터로 배열을 객체로 변환하는 방법 :
    let newArr = {...arr}

Q2. 연이율을 입력 받아 원금이 2배 이상이 될 때까지 걸리는 시간(년)을 리턴해라

  • 입출력 예시 : 1을(를) 입력받은 경우, 70을(를) 리턴

💡 복리로 증가하는 원금 일반식 : (원금 + (연이율/100)^year(년수)
n년 마다 상환되는 원금(원금 + 이자) : (1 + 이율/100)

function computeWhenDouble(interestRate) { 
 //현재 원금을 1이라고 가정한다.
  let baseMoney = 1;
 //그리고 변수 year를 선언하고 초기값으로 0을 할당한다(첫 해이므로)
  let year = 0;
 //원금이 2배가 될 때까지 조건문을 돌고, 2배가 되면 리턴되는 조건문을 만든다.
  while(baseMoney < 2) { //basemoney가 2보다 커지면 조건문은 멈춘다.
    baseMoney = baseMoney * (1 + interestRate/100); // -> 이 값은 원금 + n년치 
    year++; //그리고 year에 1년씩 더해준다.
  }
  return year; //조건문이 멈추면(원금이 2보다 커지면) year를 리턴한다.
}

참고한 사이트

profile
한입 크기로 베어먹는 개발지식 🍰

0개의 댓글