코로 넘어져도 헤딩만 하면 그만
[알고리즘] 데일리코딩 1~2 본문
1. 배열을 입력받아 차례대로 배열의 첫 요소와 마지막 요소를 키와 값으로 하는 객체를 리턴해야 합니다.
- 빈 배열을 입력받은 경우, 빈 객체를 리턴해야 합니다.
- 입력으로 받는 배열을 수정하지 않아야 합니다.
이 문제는 배열을 객체로 만드는 것이 포인트라고 생각한다. arr[0]과 arr[length-1]로 배열의 처음과 마지막을 뽑는 것까지는 수월했는데, 이것을 객체로 밀어넣는 상황에서 고민을 하기 시작했다.
function transformFirstAndLast(arr) {
// 배열을 입력받아 차례대로 배열의 첫 요소와 마지막 요소를
// 키와 값으로 하는 객체를 리턴해야 합니다.
//빈 배열을 입력받은 경우, 빈 객체를 리턴해야 합니다.
//키와 값으로 하는 '객체'리턴하기
if (arr.length === 0) {
return {};
} else {
let newKeys = arr[0];
let newValue = arr[arr.length - 1];
let obj = { [newKeys]: newValue };
return obj;
}
}
결론적으로 객체에 대괄호를 사용해서 key값을 넣을 수 있다는 것을 습득했다. (대괄호를 써서 프로퍼티 키를 동적 생성)
2. 연이율을 입력받아 원금이 2배 이상이 될 때까지 걸리는 시간(년)을 리턴해야 합니다.
이자율이 나와서 당황한 문제였다. 수학에 더 가깝지 않나... for문은 못 쓰는 건가? 궁금...
function computeWhenDouble(interestRate) {
//원금은 1, 이자는 원금 * 연이율 1* interestRate/100
//원금+이자가 원금의 2배
//맞으면 년도를 리턴, 아니면 1년의 이자를 더해준다.
//원금과 이자를 곱해준다.
let origin = 1;
let year=0;
let interest = 1+interestRate/100;
while(origin<2){
origin = origin*interest;
year++
}
return year;
}
'CODE STATES 44 > 데일리 코딩(알고리즘)' 카테고리의 다른 글
Comments