Daily Coding

준성·2023년 5월 16일
0
post-thumbnail

코딩문제들을 풀어 주석으로 내의견을 정리해봤다.

문제 1번


연이율을 입력받아 원금이 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번


수를 입력받아 2의 거듭제곱인지 여부를 확인하는 문제

주의사항

  • while문을 사용해야합니다.
  • 2의 0승은 1입니다.
  • 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;
}

문제 3번


주의사항

  • 단어는 공백 한 칸으로 구분합니다.
  • 연속된 공백은 없다고 가정합니다.
  • 빈 문자열을 입력받은 경우, 빈 문자열을 리턴해야 합니다.

문자열의 입력받아 문자열을 구성하는 각 단어의 첫 글자로 이루어진 문자열을 보여주는 문제

function firstCharacter(str) {
  // 빈 문자열을 변수에 저장
  let string = '';
  // 매개변수의 문자열을 공백기준으로 나누어서 저장
  let firstStr = str.split(' ');
  // 만약 매개변수에 빈 문자열을 입력받은 경우, 빈 문자열로 리턴
  if(str === ''){
    return '';
  }
  // 배열에 값들을 문자열로 나열
  for(let i of firstStr){
    // string은 꺼내온 값들의 문자열 첫번째 단어들을 계속 더해준다
    string += i[0];
  }
  // 그 값을 리턴한다.
  return string
}

문제 4번


문자열을 입력받아 순서가 뒤집힌 문자열로 나타내는 문제

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;
}
profile
코드를 그리다.

0개의 댓글