카테고리 없음

10/23일 오늘의 알고리즘(R)

wooseobsssss 2023. 10. 23. 19:23
  • n 번째 원소부터
  • 정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
  •  
function solution(num_list, n) {
    // num_list에서 n번째 원소부터 마지막 원소까지의 부분 배열을 추출
    const result = num_list.slice(n - 1);

    return result;
}

------------

  • 정수 부분
  • 실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요.
function solution(flo) {
    return Math.floor(flo);
}
--

-------------- N의배수

  • n의 배수
  • 정수 num n이 매개 변수로 주어질 때, num n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.
function solution(num, n) {
    if(num%n === 0 ){
        return 1;
    }else {
      return   0;
    }
}

 

-----------------

  • 공배수
  • 정수 number n, m이 주어집니다. number n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
function solution(number, n, m) {
    if(number%n===0 && number%m ===0 ){
        return 1;
    }else{
        return 0;
    }
}

-------

  • 소문자로 바꾸기
  • 알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 소문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
function solution(myString) {
    let result = myString.toLowerCase();
    return result;
}

---------------

  • 문자열로 변환
  • 정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요.

function solution(n) {
    var answer = '';
    return n.toString();
}
 
-

----------------------

  • 홀짝에 따라 다른 값 반환하기
  • 양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요
function solution(n) {
    if (n % 2 === 1) {
        let 홀수합 = 0;
        for (let i = 1; i <= n; i += 2) {
            홀수합 += i;
        }
        return 홀수합;
    } else {
        let 짝수합 = 0;
        for (let i = 2; i <= n; i += 2) {
            짝수합 += i * i;
        }
        return  짝수합;
    }
}

------------------------------

  • 문자열 붙여서 출력하기
  • 두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다.
    입출력 예와 같이 str1 str2을 이어서 출력하는 코드를 작성해 보세요.

 

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
}).on('line', function (line) {
    const strArr = line.split(' ')
    console.log(strArr.join(''))
})

------------------------------

  • 문자열의 뒤의 n글자
  • 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 뒤의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
function solution(my_string, n) {
    return my_string.slice(my_string.length-n)
}
 
  • 대문자로 바꾸기
  • 알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 대문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
function solution(myString) {
    let result = myString.toUpperCase();
    return result;
}

----------------

  • 뒤에서 5등 위로
  • 정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
function solution(num_list) {
    // 배열을 복사한 후 정렬
    const sortedList = [...num_list].sort((a, b) => a - b);
   
    // 가장 작은 5개의 수를 슬라이싱
    const smallest5 = sortedList.slice(0, 5);
   
    // 가장 작은 5개의 수를 제외한 나머지 수를 슬라이싱
    const result = sortedList.slice(5);
   
    return result;
}

------------------------

  • 이어 붙인 수
  • 정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.
function solution(num_list) {
    let oddSum = ''; // 홀수를 이어붙일 변수
    let evenSum = ''; // 짝수를 이어붙일 변수

    for (let num of num_list) {
        if (num % 2 === 0) {
            evenSum += num.toString(); // 짝수는 문자열로 변환하여 이어붙임
        } else {
            oddSum += num.toString(); // 홀수는 문자열로 변환하여 이어붙임
        }
    }

    // 이어붙인 문자열을 정수로 변환한 후 합산
    return parseInt(oddSum) + parseInt(evenSum);
}

 

  • 문자열 정수의 합
    • 한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.
function solution(num_str) {
   
    const numArr = num_str.split('').map(Number);

 
    const sum = numArr.reduce((a, b) => a + b, 0);

    return sum;
}

----------------

  • 뒤에서 5등까지
  • 정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
function solution(num_list) {
    // 숫자 배열을 오름차순으로 정렬
    num_list.sort((a, b) => b - a);
   
    // 가장 큰 5개의 숫자를 추출
    const top5 = num_list.slice(-5);
   
    // 추출된 숫자를 내림차순으로 정렬
    top5.sort((a, b) => a- b);
   
    return top5;
}

-----------------------------

 

  • 접두사인지 확인하기
  • 어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다. 예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다.
    문자열 my_string is_prefix가 주어질 때, is_prefix my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
function solution(my_string, is_prefix) {
    if (my_string.startsWith(is_prefix)) {
        return 1;
    } else {
        return 0;
    }
}

-----------------

 

  • n 번째 원소부터
  • 정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
function solution(num_list, n) {
    // num_list에서 n번째 원소부터 마지막 원소까지의 부분 배열을 추출
    const result = num_list.slice(n - 1);

    return result;
}

---------------------

  • 배열의 원소 삭제하기
  • 정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.
function solution(arr, delete_list) {
    for (let i = 0; i < delete_list.length; i++) {
       
        const item = delete_list[i];
        arr = arr.filter(element => element !== item);
    }
   
    return arr;
}

---------------------------

 

  • 주사위 게임 1
  • 1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 두 주사위를 굴렸을 때 나온 숫자를 각각 a, b라고 했을 때 얻는 점수는 다음과 같습니다.
    • a와 b가 모두 홀수라면 a2 + b2 점을 얻습니다.
    • a와 b 중 하나만 홀수라면 2 × (a + b) 점을 얻습니다.
    • a와 b 모두 홀수가 아니라면 |a - b| 점을 얻습니다.
    두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
function solution(a, b) {
    if (a % 2 === 1 && b % 2 === 1) {
      // a와 b가 모두 홀수일 때
      return a * a + b * b;
    } else if (a % 2 === 1 || b % 2 === 1) {
      // a와 b 중 하나만 홀수일 때
      return 2 * (a + b);
    } else {
      // a와 b가 모두 홀수가 아닐 때
      return Math.abs(a - b);
    }
  }