[Javascript] 반복문 코테

유아현·2022년 10월 25일
0

JavaScript

목록 보기
6/25
post-thumbnail

버그를 찾자

  • 문자열을 입력받아 버그('#')의 인덱스를 리턴
  • number 타입을 리턴
  • 반복문(for)문을 사용

function findTheBug(word) {
  //i번째에 있는 문자열이 버그와 같냐

  for(let i = 0 ; i < word.length ; i++){
    if (word[i] === '#'){
      return i;
    }
  }
}

입력받은 수의 합 구하기

  • 수를 입력받아 0부터 해당 수까지의 합을 리턴
  • 반복문(for)문을 사용
  • umber 타입을 리턴
function sumTo(num) {
  sum = 0
  for(let i = 0 ; i <= num ; i++){
    sum += i;
  }
  return sum;
}

입력받은 수가 홀수일까?

  • 수를 입력받아 홀수인지 여부를 리턴
  • boolean 타입을 리턴
  • for문 사용은 금지, 반복문(while)문을 사용
  • 나눗셈(/), 나머지(%) 연산자 사용은 금지
  • 0은 짝수로 간주
function isOdd(num) { 
  //받은 매개변수가 홀수면 true 리턴

  if (num < 0){           // num이 음수일 경우 Math.abs()를 사용해 절댓값으로 바꿔 줌
    num = Math.abs(num);
  } 

  while (num >= 0){
    if(num === 1){
      return true;
    }
      else if (num === 0){
        return false;
      }
    num -= 2;
  } 
}

입력받은 수의 factorial 구하기!

  • 수를 입력받아 n-factorial 값(n!)을 리턴
  • number 타입을 리턴
  • 반복문(for)문을 사용
  • factorial(0)은 1로 정의
  • 음수 입력 X
function factorial(num) {
  result = 1;

  if (num <= 0){
    return 1;
  }
  
  for (let i = 1 ; i <= num ; i++){
    result *= i 
  }
  return result;
}

입력받은 수만큼 문자열 반복

  • 문자열과 수를 입력받아 반복된 문자열을 리턴
  • string 타입을 리턴
  • 0을 입력받은 경우, 빈 문자열을 리턴
function repeatString(str, num) {
  result = ''
  for(let i = 1; i <= num ; i++){ // 입력된 수만큼 str이 반복
    result += str;
  }
  return result;
}

1부터 입력받은 수까지 출력

  • 수(num)를 입력받아 1부터 num까지의 정수로 구성된 문자열을 리턴
  • string 타입을 리턴
  • 반복문(for)문을 사용
  • 숫자(number string) 사이의 구분 X
function makeDigits(num) {
  result = ''

  for(let i = 1; i <= num ; i++){
    result += i;
  }
  return result;
}

1부터 입력받은 수까지 출력('-'로 구분)

  • 수(num)를 입력받아 1부터 num까지의 정수로 구성된 문자열을 리턴
  • string 타입을 리턴
  • 반복문(while)문을 사용
  • 숫자(number string) 사이를 '-'로 구분 ex) '1-2-3-4-5'
function makeDigits2(num) {
  start = 2;
  result = '1';
  while (start <= num){
    result += `-${start}`;
    start++;
  }
  return result;
}

입력받은 수만큼 홀수 출력

  • 수(num)를 입력받아 1을 포함하여 num개의 홀수로 구성된 문자열을 리턴
  • string 타입을 리턴
  • 반복문(while)문을 사용
function makeOddDigits(num) {

  let i = 1;
  let count = 1;
  result = ''

  while (count <= num){
 
  result += String(i);
  i += 2;
  count ++; 
  }
  return result;
}

입력받은 수의 3의 배수 출력

  • 수를 입력받아 1부터 해당 수까지의 수 중에서 3의 배수로만 구성된 문자열을 리턴
  • string 타입을 리턴
  • 반복문(for)문을 사용
  • 3의 배수가 없을 경우, 빈 문자열을 리턴
function makeMultiplesOfDigit(num) {
  result = '';

  for( let i = 1 ; i <= num ; i++){
    if(i % 3 === 0){
      result += i
    }
  }
  return result;
}

두 수 사이의 2의 배수 개수 출력

  • 두 개의 수를 입력받아 두 수를 포함해 두 수 사이의 수 중 2의 배수의 개수를 리턴
  • 반복문(for)문을 사용
  • num1 > num2일 수 있음
  • 0은 2의 배수가 아니라고 가정
function makeMultiplesOfDigit2(num1, num2) {

 start = num1;
 end = num2;
 count = 0;

  if(num1 > num2){
    start = num2;
    end = num1;
  }

    if(start === 0){ 
    start = 1;
  }

 for(let i = start ; i <= end ; i++){
   if(i % 2 === 0){
     count++
   }
 }
 return count;
}

str에서 letter가 등장하는 횟수

  • 문자열과 문자를 입력받아 문자열에서 문자(letter)가 등장하는 횟수를 리턴
  • number 타입을 리턴
  • 반복문(for)문을 사용
  • 빈 문자열을 입력받은 경우, 0을 리턴
function countCharacter(str, letter) {
  count = 0;
  for(let i = 0 ; i < str.length ; i++){
    if(str[i] === letter){
      count++;
    }
  }
  return count;
}

입력받은 숫자 문자열 중 가장 큰 숫자 찾기

  • 숫자 문자열을 입력받아 문자열을 구성하는 각 숫자 중 가장 큰 수를 나타내는 숫자를 리턴
  • string 타입을 리턴
  • 반복문(for)문을 사용
  • str.split 사용은 금지
  • 빈 문자열을 입력받은 경우, 0을 리턴
function getMaxNumberFromString(str) {
  isMax = '';

  if (str === ''){
    return '0';
  }

  for(let i = 0 ; i < str.length ; i++){
    if( str[i] > isMax){
      isMax = str[i];
    }
  }
  return isMax;
}

str에 form을 to로 바꾸기

  • 문자열과 두 개의 문자(from, to)를 입력받아, 문자열에 등장하는 특정 문자(from)가 다른 문자(to)로 바뀐 문자열을 리턴
  • string 타입을 리턴
function replaceAll(str, from, to) {
  result = '';
  for(let i = 0 ; i < str.length ; i++){
    if( str[i] === from ){
      result += to;
    }
    else {
      result += str[i];
    }
  }
  return result;
}

입력받은 문자열 사이에 순차적으로 숫자 문자열을 추가

  • 문자열을 입력받아 각 문자(letter) 뒤에 해당 문자의 인덱스가 추가된 문자열을 리턴
  • 반복문(for)문을 사용
  • 빈 문자열을 입력받은 경우, 빈 문자열을 리턴
function characterAndNumber(word) {
  result = '';
  count = 0;
  for(let i = 0 ; i < word.length ; i++){
    result += word[i] + count; 
    count++
  }
  return result;
}

밑의 거듭제곱 구하기

  • 밑(base)과 지수(exponent)를 입력받아 밑의 거듭제곱을 리턴
  • 반복문(for)문을 사용
  • Math.pow, 거듭제곱 연산자 사용 금지
function computePower(base, exponent) {
  result = 1;
  for(let i = 1; i <= exponent ; i++){
    result *= base;
  }
  return result;
}

입력받은 수의 약수 합 구하기

  • 수를 입력받아 약수(factor)의 합을 리턴
  • number 타입을 리턴
function getSumOfFactors(num) {
  sum = 0;

  for(let i = 1; i <= num ; i++){
    if(num % i === 0){
      sum += i;
    }
  }
  return sum;
}

소수 여부

  • 1 이상의 자연수를 입력받아 소수(prime number)인지 여부를 리턴
  • boolean 타입을 리턴
function isPrime(num) {

  if (num === 1){
    return false;
  }
  if (num === 2){
    return true;
  }

  if (num % 2 === 0){
    return false;
  }

  for(let i = 3 ; i < num ; i += 2){
    if(num % i === 0){
      return false;
    }
  }
  return true;
}

18. 나중에 함

str 문자열로 만들 수 있는 모든 문자열 구하기

  • 문자열을 입력받아 해당 문자열에 등장하는 각 문자(letter)를 가지고 만들 수 있는 길이 2의 문자열들을 리턴
  • string 타입을 리턴
  • 이중 반복문(double for loop)을 사용
  • 빈 문자열을 입력받은 경우에는 빈 문자열을 리턴
function makePermutations(str) {
  result = '';

  for (let i = 0 ; i < str.length ; i++){
    for (let j = 0 ; j <str.length; j++){
      result += str[i] + str[j] + ','
    }
  }
  return result.slice(0, -1);
}

str에 중복된 문자 존재 여부

  • 문자열을 입력받아 해당 문자열에 중복된 문자(letter)가 존재하는지 여부를 리턴
  • boolean 타입을 리턴
  • 이중 반복문(double for loop)을 사용
  • 빈 문자열을 입력받은 경우에는 false을 리턴
function hasRepeatedCharacter(str) {
  for(let i = 0 ; i < str.length ; i++){
    for(let j = i+1 ; j < str.length ; j++){
      if( str[i] === str[j]){
        return true;
      }
    }
  }
  return false;
}

makeMarginalString

  • 문자열을 입력받아 해당 문자열을 처음부터 한 글자(letter)씩 다시 작성하려고 합니다. 이 때, 한 글자를 추가할 때마다 부분적으로 완성된 문자열을 전부 이어붙인 문자열을 리턴
  • string 타입을 리턴
  • 이중 반복문(double for loop)을 사용
  • str.slice, str.substr, str.substring 사용은 금지
  • 빈 문자열을 입력받은 경우에는 빈 문자열을 리턴
function makeMarginalString(str) {
  result = '';

  for(let i = 0 ; i < str.length ; i++){
    for(let j = 0 ; j <= i ; j++){ 
      result += str[j];
    }
  }
  return result;
}

0개의 댓글