3:3헌터알고리즘 고수만

안녕

고수만 입장했지?

그럼 종족골라 시작하자 매일 두문제씩 올려볼께~~~
그동안 조건문, 반복문, 배열, 객체를 잘 이해했으면 풀이가 가능해 !!!! ㅇㅋ?

그럼 가보자


1번문제

배열을 입력받아 차례대로 배열의 첫 요소와 마지막 요소를 키와 값으로 하는 객체를 리턴해야 합니다.

예시

입출력 예시
let arr = ['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce'];
let output = transformFirstAndLast(arr);
console.log(output); // --> { Queen : 'Beyonce' }

arr = ['Kevin', 'Bacon', 'Love', 'Hart', 'Costner', 'Spacey'];
output = transformFirstAndLast(arr);
console.log(output); // --> { Kevin : 'Spacey' }

// 수도코드
1.결과를 반환할 변수를 선언하고 빈객체를 할당한다.
2.객체의 키 값을 입력된 0번째 인덱스 값으로 하고 키에 해당하는 값을 배열의 마지막 값으로 한다.

!!힌트
배열의 마지막 값을 나타내는 방법은 여러가지지? ㅋㅋ
기억난거 두개로 정답코드 두개 써 볼께 ㅇㅋ?

첫번째 정답코드

function transformFirstAndLast(arr) {
  // TODO: 여기에 코드를 작성합니다.
  let obj = {}
  if(arr.length === 0){
    return obj;
  }else {
    obj[arr[0]] = arr.slice(-1).join();
    return obj;
  }
}

난 배열의 마지막 값을 슬라이스를 해서 그걸 다시 문자열로 바꿔봤어 ㅋㅋ

두번째 정답코드

function transformFirstAndLast(arr) {
  // TODO: 여기에 코드를 작성합니다.
  let obj = {};
  let key = arr[0];
  let value = arr[arr.length - 1];
  
  if (arr.length > 0){
    obj[key] = value;
  }
  return obj;
}

배열의 0번째 인덱스랑 마지막 값을 변수에 넣었고, 그걸 사용해봤어

형님들 이거 어때? 좋은거 같아? ㅋㅋㅋㅋ

사실 변수를 많이 선언하는것이 꼭 좋지 않다고 배웠거든
물리엔진? ㅋㅋ 자바스크립트 작동원리에 따르면........(zzzz)

벌써 코골았네... ㅋㅋㅋ 이론은 진짜 잘정리해서 올려줄께 최대한 쉽게해서


2번문제

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

(이번문제는 핀테크 관련 문제를 준비했어 ㅋㅋㅋ 형님들 넘 좋지 ~~ 이자계산 가즈아)

입출력 예시
let output = computeWhenDouble(7);
console.log(output); // --> 11

output = computeWhenDouble(10);
console.log(output); // --> 8

연이율 입력받아
여기서 잠깐 생각많은분은 복리로 해야해? 단리로 해야해? 이거 고민될꺼야
복리계산법이야

현재돈 = 원금 + (원금*이자율) <= 이렇게 계산하는거 ㅇㅋ?

이건 while문을 사용하면 편하게 구할수 있어
While문 특징이 뭐야~~!!?

모르면 링크 걸어둘께
반복문 개념

while 조건이 성립할때 까지 돌리는놈이야
우린 취업할때 까지 공부하자~~!!!

//수도코드

  // 원금을 입력받아 2배이상 되는 시간을 리턴해야한다. 
  // 1번 반복하는것을 1년이라고 한다. 
  // 원금에 두배 이상 될때!! 반복횟수를 리턴하자 ㅇㅋ? 
  // while 문으로 사용해보자 

정답코드

function computeWhenDouble(interestRate) {
  let raw = 1;
  let count = 0;
  
  while (raw < 2){
    raw = raw + (raw * interestRate * 0.01);
    count++   
  }
  return count;
}

원금이 두배 될때 마다 카운트를 해줘서 그걸 리턴하는 코드야

간단하지?

그럼 내일 다시 돌아올께 ~~ 빠이

좋은 웹페이지 즐겨찾기