문제정수와 문자열 형태의 숫자가 섞여 있는 배열을 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 배열 안의 모든 정수와 문자열 숫자를 하나로 합산하여 새로운 숫자를 만든 뒤, 그 결과를 반환해야 합니다.예시다음은 해당 코드입니다 −const arr = [67, 45, 34, 23, 4, 6, 6];const mixedSum = (arr = []) => { let sum = 0; for(let i = 0; i < arr.l
문제 상황사람들에 대한 정보를 담고 있는 객체 배열이 주어졌을 때, 이 배열에서 age(나이) 속성의 평균값을 구하는 JavaScript 함수를 작성해야 합니다.배열의 각 요소는 이름(fName)과 나이(age)를 포함하는 객체이며, 이 중 나이 값들을 모두 더한 뒤 사람 수로 나누어 평균 나이를 계산하면 됩니다.풀이 방법가장 효율적인 접근 방식은 reduce() 메서드를 활용하는 것입니다. reduce()를 사용하면 배열을 한 번만 순회하면서 합계(sum)와 개수(count)를 동시에 누적할 수 있습니다. 그런 다음 합계를 개수로
문제 개요사람들의 소속 대륙 정보를 담고 있는 객체 배열을 입력받는 JavaScript 함수를 작성해야 합니다.이 함수는 배열 안에 아프리카, 남아메리카, 북아메리카, 유럽, 아시아, 호주(오세아니아) 등 여섯 개 대륙이 모두 존재하면 true를 반환하고, 하나라도 빠져 있다면 false를 반환해야 합니다.해결 접근 방식가장 직관적인 방법은 다음과 같습니다.1. 전체 대륙 목록을 담은 기준 배열을 만듭니다.2. 입력받은 객체 배열에서 각 사람의 continent 값을 추출합니다.3. 추출된 대륙이 기준 배열에 존재하면 해당 항목을
문제숫자로만 구성된 문자열을 입력받아, 5보다 작은 숫자는 모두 0으로, 5 이상인 숫자는 모두 1로 바꾼 새로운 문자열을 반환하는 JavaScript 함수를 작성해야 합니다.예제다음은 전체 코드입니다 −const str = '262355677834342';const convert = (str = '') => { let res = ''; for(let i = 0; i < str.length; i++){
문제숫자 하나(n)를 인수로 받는 자바스크립트 함수를 작성해야 합니다. 이 함수는 자연수 중에서 n번째 짝수를 계산하여 그대로 반환해야 합니다.짝수는 2의 배수이므로 반복문이나 배열 없이도 간단한 산술 연산 한 번으로 답을 구할 수 있습니다. 시간 복잡도 O(1)로 처리되는 아주 효율적인 문제입니다.접근 방법이 풀이에서 사용하는 논리는 다음과 같습니다.입력받은 수에 2를 곱합니다.여기서 2를 빼면 원하는 결과가 됩니다.즉, n번째 짝수를 2 × n − 2 공식으로 계산하는 방식입니다. 이 기준은 0을 첫 번째 짝수로 보는 것이며,
문제 정의JavaScript에서 두 개의 숫자 [a, b](a ≤ b)로 구성된 배열을 입력받는 함수를 작성해야 합니다. 이 배열은 하나의 범위를 나타냅니다.작성할 함수는 해당 범위에 포함된 모든 자연수를 요소로 가지는 배열을 반환해야 하며, 시작 값과 끝 값 역시 결과에 포함되어야 합니다.예제 코드다음은 위 문제를 해결하는 함수 구현 예시입니다.const range = [6, 45];const naturalBetweenRange = ([lower, upper] = [1, 1]) => { &nbs
DNA와 RNA의 관계디옥시리보핵산(DNA)은 생명체 내에서 유전 정보를 저장하는 핵심 분자입니다. DNA는 네 가지 핵산 염기, 즉 구아닌(G), 시토신(C), 아데닌(A), 티민(T)으로 구성되어 있습니다.리보핵산(RNA)은 세포 내에서 유전 정보를 전달하는 주요 전령 분자입니다. RNA는 화학 구조가 DNA와 약간 다르며, 티민을 포함하지 않는다는 점이 특징입니다. RNA에서는 티민 대신 또 다른 핵산 염기인 유라실(U)이 그 역할을 대신합니다.문제 정의주어진 DNA 문자열을 RNA 문자열로 변환하는 JavaScript 함수를
문제 설명세 개의 매개변수를 입력받아 결과를 반환하는 JavaScript 함수를 작성해야 합니다.cap — 운전자를 제외한 버스가 수용할 수 있는 최대 승객 수on — 운전자를 제외한 현재 버스에 타고 있는 승객 수wait — 운전자를 제외한 버스 탑승을 기다리고 있는 승객 수버스에 여유 공간이 충분하다면 0을 반환하고, 공간이 부족하다면 탑승하지 못하는 승객의 수를 반환해야 합니다.예시 코드const cap = 120; const on = 80; const wait = 65; const findCapacity = (cap, on,
문제영어 알파벳으로 구성된 문자열을 인수로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 문자열 내 모든 알파벳을 10자리씩 앞으로 이동시켜야 하며, 만약 알파벳이 z를 넘어가게 되면 다시 a부터 순환하여 이어가야 합니다.예를 들어 a는 k로 이동하고, q처럼 z를 넘어서는 문자는 다시 a로 돌아가 계산됩니다.예제 코드다음은 위 문제를 해결하는 코드입니다 −const str = sample string;const moveStrBy = (num = 10) => {  
문제 소개 다음 그림처럼 하나의 큰 직사각형 안에 5개의 정사각형이 차곡차곡 포개어 배치되어 있다고 가정해 보겠습니다. 이 정사각형들은 각 변의 길이가 1, 1, 2, 3, 5로 이어지는 피보나치 수열 구조를 띠고 있습니다. 따라서 각 정사각형의 둘레를 모두 더하면 다음과 같습니다. 4 + 4 + 8 + 12 + 20 = 48 단위 즉, 우리가 작성해야 할 것은 숫자 n을 입력받아, 직사각형 안에 n개의 정사각형이 배치되어 있을 때 전체 둘레의 합을 반환하는 JavaScript 함수입니다. 접근 방법 정사각형의 변의 길이가 피보
문제 소개양의 정수 n을 입력받아, 숫자의 자릿수를 왼쪽으로 회전시켜 얻을 수 있는 모든 수 중에서 가장 큰 값을 반환하는 JavaScript 함수를 작성해야 합니다.예를 들어 56789가 주어졌다면, 자릿수를 왼쪽으로 한 칸씩 밀어 만들 수 있는 수는 다음과 같습니다.1회 회전 → 678952회 회전 → 789563회 회전 → 895674회 회전 → 95678이 중 가장 큰 값은 95678입니다.풀이 접근 방법숫자를 문자열로 변환한 뒤 각 자릿수를 배열 요소로 분리하고, 배열을 회전할 때마다 새로운 숫자를 만들어 기존 최댓값과 비
문제 정의 (ax+b)^n 형태의 수식을 입력받아 전개하는 JavaScript 함수를 작성해야 합니다. 여기서 a와 b는 양수 또는 음수일 수 있는 정수, x는 임의의 한 글자 변수, n은 자연수입니다. 단, a가 1일 경우에는 변수 앞에 계수를 따로 표기하지 않습니다. 함수는 전개된 결과를 ax^b+cx^d+ex^f... 형태의 문자열로 반환해야 합니다. 여기서 a, c, e는 각 항의 계수이고, x는 원래 수식에 사용된 한 글자 변수 그대로이며, b, d, f는 각 항에서 x가 거듭제곱된 지수로 반드시 내림차순으로 정렬되어야 합
문제 개요정수 n(n ≥ 0)과 한 자리 숫자 d(0 ≤ d ≤ 9)를 입력받는 JavaScript 함수를 작성해야 합니다.함수는 0부터 n 사이의 모든 수 k(0 ≤ k ≤ n)를 각각 제곱한 후, 만들어진 모든 k² 값을 십진법으로 표기할 때 숫자 d가 총 몇 번 등장하는지 세어 그 개수를 반환해야 합니다.예제 코드다음은 위 문제를 해결하는 코드입니다.const n = 25;const d = 1;const countDigits = (n, d) => { let k = 0, count
문제 설명 방의 길이, 너비, 높이를 매개변수로 받아, 방의 벽면 전체를 덮는 데 필요한 시트(벽지)의 개수를 계산하는 JavaScript 함수를 작성해야 합니다. 시트 한 장의 규격은 다음과 같이 가정합니다. 너비: 0.52 단위 길이: 10 단위 또한 실제 시공 과정에서 발생할 수 있는 손실을 대비해, 계산된 필요량보다 15% 많은 양의 롤 수를 반환하도록 합니다. 풀이 접근 전체 계산 과정은 다음 세 단계로 정리할 수 있습니다. 벽면의 총 면적 계산: 사방 벽의 면적은 2 × (길이 + 너비) × 높이 공식으로 구할 수
문제 정의 이번 포스트에서는 N×N 크기의 2차원 배열(미로)이 주어졌을 때, 시작 지점 [0, 0]에서 출구 [N-1, N-1]까지 이동할 수 있는지 판별하는 자바스크립트 함수를 작성해 보겠습니다. 미로의 규칙은 다음과 같습니다. 벽은 문자 W(Wall)로 표시되고, 지나갈 수 있는 빈 칸은 _로 표시됩니다. 상·하·좌·우 네 방향으로 자유롭게 이동할 수 있습니다. 출구에 도달할 수 있으면 true, 그렇지 않으면 false를 반환해야 합니다. 접근 방법: 너비 우선 탐색(BFS) 격자(grid) 형태의 미로에서 도달 가능
문제 정의원금 amt > 0을 2021년 1월 1일에 예금하고, 연 이자율 p%를 360으로 나눈 만큼 매일 이자가 붙는다고 가정해 보겠습니다. 우리의 목표는 원금과 누적 이자의 합계가 원하는 금액 a0 이상이 되는 시점을 찾는 것입니다.따라서 함수는 원금, 목표 금액, 연 이자율이라는 세 가지 매개변수를 받아, 금액이 목표치에 도달하는 날짜를 반환해야 합니다.접근 방법이 문제는 복리(compound interest) 방식으로 계산해야 합니다. 매일 발생한 이자가 다시 원금에 합쳐지고, 그 금액을 기준으로 다음 날 이자가 계산
JavaScript에서 문자열 배열을 다루다 보면, 배열을 정렬한 뒤 특정 형식으로 가공해야 하는 경우가 자주 있습니다. 이번 글에서는 문자열 배열을 알파벳순으로 정렬하고, 정렬 결과 중 가장 앞선 문자열의 각 문자 사이에 *** 구분자를 삽입하는 방법을 알아보겠습니다.문제 설명문자열 배열을 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 다음과 같은 작업을 수행해야 합니다.배열의 요소들을 알파벳순(사전순)으로 정렬합니다.정렬된 배열에서 첫 번째 문자열을 선택합니다.선택된 문자열의 각 문자 사이에 ***를 삽입한
문제 정의숫자로 이루어진 배열을 입력받는 자바스크립트 함수를 작성해야 합니다. 배열 안에 ASCII 코드 기준으로 모음(a, e, i, o, u)에 해당하는 문자 코드와 일치하는 숫자가 존재한다면, 해당 숫자를 대응하는 모음 문자로 바꾼 뒤 새로운 배열을 반환하면 됩니다.예제 코드다음은 이 문제를 해결하는 코드입니다.const arr = [5, 23, 67, 101, 56, 111];const changeVowel = (arr = []) => { for (let i = 0, l = ar
문제 정의문자열 배열을 인자로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 배열에서 가능한 모든 n개의 연속된 문자열 조합을 하나씩 이어 붙여 만들고, 그중 가장 긴 문자열 중 먼저 나오는 것을 반환해야 합니다.예제 코드다음은 위 문제를 해결하는 전체 코드입니다.const arr = [zone, abigail, theta, form, libe, zas, theta, abigail]; const num = 2; function longestConsec(strarr, k) { if (strarr.length ==
문제 소개이번 글에서는 세 자리 양의 정수 하나를 입력받아, 그 숫자의 자릿수들을 재배열하여 만들 수 있는 가장 큰 수를 반환하는 JavaScript 함수를 작성해 보겠습니다.예를 들어 149가 입력되면, 자릿수 1, 4, 9 중에서 가장 큰 조합인 941을 결과로 반환해야 합니다.해결 아이디어핵심 로직은 간단합니다. 숫자를 문자열로 변환한 뒤 각 자릿수를 배열 요소로 분리하고, 내림차순으로 정렬한 후 다시 하나의 숫자로 합치면 됩니다. 또한 입력값이 실제로 세 자리 수(100~999)인지 검증하여, 그렇지 않으면 null을 반환하