코딩문제들을 풀어 주석으로 내의견을 정리해봤다.
연이율을 입력받아 원금이 2배 이상이 되는 때가 몇년이 되는지 확인해야하는 문제
function computeWhenDouble(interestRate) {
// 연이율
let rate = 1 + interestRate / 100;
// 원금
let principal = 1;
// 기간
let year = 0;
// 원금이 2배 이상이 될때까지 반복
for (i = 0; principal < 2; i++){
// 원금은 원금 * 연이율을 곱해준다
principal = principal * rate;
// 반복문이 지날때 마다 기간은 1씩 늘어난다.
year++
}
return year;
}
수를 입력받아 2의 거듭제곱인지 여부를 확인하는 문제
while
문을 사용해야합니다.Number.isInteger
, Math.log2
, Math.log
사용은 금지됩니다.function powerOfTwo(num) {
// 만약 num이 1이면 true를 리턴해라
if(num === 1){
return true;
}
// 비교 대상을 변수에
let power = 2;
// power 가 num 보다 작을때까지
while(power < num){
// power는 곱하기 2를 계속해서 한다.
power *= 2;
}
// 반복문을 돌린 power 값과 매개변수인 num이 같은지에 대한 값을 리턴해라.
return power === num;
}
문자열의 입력받아 문자열을 구성하는 각 단어의 첫 글자로 이루어진 문자열을 보여주는 문제
function firstCharacter(str) {
// 빈 문자열을 변수에 저장
let string = '';
// 매개변수의 문자열을 공백기준으로 나누어서 저장
let firstStr = str.split(' ');
// 만약 매개변수에 빈 문자열을 입력받은 경우, 빈 문자열로 리턴
if(str === ''){
return '';
}
// 배열에 값들을 문자열로 나열
for(let i of firstStr){
// string은 꺼내온 값들의 문자열 첫번째 단어들을 계속 더해준다
string += i[0];
}
// 그 값을 리턴한다.
return string
}
문자열을 입력받아 순서가 뒤집힌 문자열로 나타내는 문제
function firstReverse(str) {
// 문자열을 배열로 쪼개고 반대로 바꾸고 이어붙인다.
// let firstString = str.split('').reverse().join('');
// return firstString;
// 다른방법
// 빈문자열을 변수로 저장
let reversed = '';
// str 길이의 뒤부터 i가 0보다 크거나 같을때까지 i를 계속 감소시킨다.
for(let i = str.length - 1; i >= 0; i--) {
// 그 값들을 reversed를 저장한다.
reversed = reversed + str[i];
}
// reversed를 반환한다
return reversed;
}