문자열을 균등한 하위 문자열로 분리하기문자열과 숫자 n을 두 개의 인수로 받는 JavaScript 함수를 작성해 보겠습니다. 여기서 숫자 n은 반드시 문자열 길이를 정확히 나누어 떨어지게 하는 값이어야 하며, 함수는 길이가 모두 같은 n개의 문자열을 담은 배열을 반환해야 합니다.예를 들어 문자열이 how이고 숫자가 3이라면 결과는 다음과 같습니다.[ h, w, o ]여기서 각 하위 문자열은 다음 조건을 만족합니다.각 요소는 정확히 (문자열 길이 / n)개의 문자를 포함합니다.하위 문자열은 원본 문자열의 첫 글자와 마지막 글자를 번갈
이번 글에서는 두 개의 문자열과 하나의 숫자 n을 인자로 받는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.이 함수의 역할은 두 문자열을 서로 비교하여 동일한 문자들을 포함하고 있는지 확인하는 것입니다. 구체적으로 다음 조건 중 하나라도 만족하면 true를 반환합니다.두 문자열이 문자의 순서와 관계없이 완전히 동일한 문자들로 구성된 경우두 문자열 사이에 서로 다른 문자가 최대 n개 이하인 경우위 조건을 만족하지 못하면 함수는 false를 반환해야 합니다.예제 코드다음은 해당 기능을 구현한 코드입니다 −const str
문제 이해하기숫자 배열을 입력받아, 홀수 인덱스에 위치한 요소들의 합과 짝수 인덱스에 위치한 요소들의 합 사이의 차이를 반환하는 JavaScript 함수를 작성해야 합니다.예를 들어 다음과 같은 배열이 주어졌다고 가정해 보겠습니다.const arr = [3, 6, 34, 12, 6, 8, 8, 5, 6, 8];이 경우 함수는 짝수 인덱스(0, 2, 4, ...) 요소들의 합에서 홀수 인덱스(1, 3, 5, ...) 요소들의 합을 뺀 값의 절댓값을 반환해야 합니다.풀이 접근 방식배열을 처음부터 끝까지 순회하면서 현재 인덱스가 짝수인지
다음과 같은 숫자 리터럴 배열이 있다고 가정해 보겠습니다.const arr = [56768, 5465, 5467, 3, 878, 878, 34435, 78799];여기서 우리는 이 배열과 숫자 n을 인수로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 각 요소의 자릿수가 n 이상이면 마지막 n자리만 남기고, n 미만이라면 해당 요소를 그대로 반환해야 합니다.예를 들어 n = 2라고 하면, 위 배열에 대한 출력 결과는 다음과 같습니다.const output = [68, 65, 67, 3, 78, 78, 35, 99];구
문제 개요 배열을 한 개의 요소와 나머지 요소들로 분할했을 때, 그 하나의 요소가 자신을 제외한 나머지 모든 요소들의 곱과 정확히 일치하면 true, 그렇지 않으면 false를 반환하는 함수를 작성해야 합니다. 예를 들어, 입력 배열이 다음과 같다고 가정해 보겠습니다. const arr = [1, 56, 2, 4, 7]; 이 경우 기대하는 출력값은 true입니다. 그 이유는 56이 나머지 요소들의 곱과 같기 때문입니다. 1 * 2 * 4 * 7 = 56 접근 방법 이 문제는 배열을 한 번만 순회하면 해결할 수 있습니다. 핵심 아이디
루나 합(Lunar Sum)이란?루나 합(lunar sum)은 두 수를 더할 때 각 자릿수를 일반적인 덧셈으로 계산하는 대신, 같은 자리의 두 숫자 중 더 큰 값을 취해 결과를 만드는 독특한 덧셈 방식입니다.예를 들어 다음과 같은 두 수가 있다고 가정해 보겠습니다.a = 879, b = 768(이 문제에서는 편의상 자릿수가 같은 두 수만 다룹니다.)각 자릿수별로 더 큰 값을 선택하면 8, 7, 9가 되므로, a와 b의 루나 합은 다음과 같습니다.879이제 우리는 두 개의 숫자를 인자로 받아 그 루나 합을 반환하는 JavaScript
공백으로 연결된 문자열을 입력받아, 해당 문자열에 포함된 모든 단어의 평균 길이를 계산한 뒤 소수점 둘째 자리까지 반올림하여 반환하는 JavaScript 함수를 작성해야 합니다.예를 들어 This sentence will be used to calculate average word length라는 문자열이 주어지면, 각 단어의 길이를 합산해 단어 개수로 나눈 평균 값을 구해야 합니다.해결 방법이 문제는 다음과 같은 논리로 접근할 수 있습니다.문자열에 공백이 없다면 단어가 하나뿐이므로, 문자열 전체 길이를 그대로 반환합니다.공백이 있
포커의 풀하우스란? 포커에서 풀하우스(Full House)는 다섯 장의 카드 가운데 세 장이 서로 같은 숫자(랭크)를 이루는 상황을 의미합니다. 엄밀히 말하면 풀하우스는 세 장이 같은 숫자(트리플)와 두 장이 같은 숫자(원페어)가 동시에 존재하는 조합으로, 예를 들어 K-K-K-2-2가 대표적인 풀하우스입니다. 이번 글에서는 다섯 장의 카드를 담은 배열을 인자로 받아, 풀하우스가 성립하면 true, 그렇지 않으면 false를 반환하는 JavaScript 함수를 작성해 보겠습니다. 예제 코드 const arr1 = [K, 2, K,
문자열이 주어졌을 때, 각 문자가 등장한 인덱스를 배열 형태로 저장하는 객체를 생성하는 함수를 작성해야 합니다. 이때 문자열의 문자(요소)는 객체의 키(key)가 되고, 해당 문자가 나타난 인덱스들을 담은 배열은 객체의 값(value)이 됩니다.예시입력 문자열이 다음과 같다고 가정해 보겠습니다.const str = cannot;그렇다면 기대되는 출력 결과는 아래와 같습니다.const output = { c: [0], a: [1], n: [2, 3], o: [4], t: [5] };위 결과를 보면 문자 n은 문자열
JavaScript에서는 표준 데이터 타입의 프로토타입에 직접 함수를 추가하여 마치 내장 메서드처럼 활용할 수 있습니다. 라이브러리 메서드를 작성하는 것과 유사하지만, 이 경우에는 사용자 정의 타입이 아닌 원시(primitive) 데이터 타입에 기능을 확장한다는 점이 다릅니다.여기서는 String 객체에 swapCase()라는 이름의 함수를 추가해 보겠습니다. 이 함수는 문자열 내의 모든 대문자를 소문자로, 소문자를 대문자로 바꾼 새로운 문자열을 반환합니다. 숫자, 특수문자, 공백 등 알파벳이 아닌 문자는 원본 그대로 유지됩니다.동
이번 글에서는 두 개의 문자열을 입력받아 서로 공통으로 포함된 문자만 추출하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.요구 사항은 다음과 같습니다.두 문자열에 공통된 문자가 하나도 없다면 빈 문자열()을 반환합니다.공통된 문자가 있다면 해당 문자들을 모두 이어 붙인 새로운 문자열을 반환합니다.예시 문자열 준비하기먼저 테스트에 사용할 두 개의 문자열을 정의합니다.const str1 = Hey There!!, how are you;const str2 = Can this be a special string;위 두 문자열
문제 이해하기JavaScript로 첫 번째 인수로 하나의 문자열을, 그다음 인수로 단일 문자 두 개를 받는 함수를 작성해야 합니다. 이 함수는 첫 번째 인수로 전달된 문자열 안에서 두 문자가 서로 떨어져 있는 거리(인덱스 차이)를 반환해야 합니다.예를 들어 다음과 같은 세 개의 문자열이 주어졌다고 가정해 보겠습니다.const str = Disaster management; const a = i, b = t;이 경우 출력값은 4여야 합니다. 문자열에서 i와 t 사이의 거리가 4이기 때문입니다.코드 작성하기다음은 위 문제를 해결하는 코
자바스크립트에서 동적 배열을 정렬할 때, 알파벳순이나 숫자 크기순이 아니라 미리 정의된 표준 배열에 저장된 값의 순서를 그대로 따라야 하는 경우가 있습니다.예를 들어 다음과 같은 동적 배열이 있다고 가정해 보겠습니다.const dbArray = [Apple,Banana,Mango,Apple,Mango,Mango,Apple];그리고 정렬 시 참조할 기준이 되는 표준 배열은 다음과 같습니다.const stdArray = [Mango,Apple,Banana,Grapes];표준 배열의 순서는 Mango → Apple → Banana → G
두 표현식의 차이점문제를 자세히 들여다보면 ([] == false)와 ([] || true)의 차이는 다음과 같습니다.첫 번째 경우에는 느슨한 동등 비교(loose equality)를 사용하기 때문에 타입 강제 변환(type coercion)이 개입합니다.반면 두 번째 경우에는 []를 해당하는 불리언 값(truthy 또는 falsy)으로 평가하게 되는데, 이 과정에서는 내부적으로 타입 강제 변환이 아닌 Boolean() 함수가 사용됩니다.그럼 이제 두 경우 각각에서 내부적으로 어떤 변환이 일어나는지 하나씩 살펴보겠습니다.Case 1
팬디지털(Pandigital) 숫자란 0부터 9까지의 모든 숫자를 최소 한 번 이상 포함하고 있는 수를 말합니다. 이번 글에서는 숫자를 나타내는 문자열을 인자로 받아, 해당 숫자가 팬디지털이면 true를, 그렇지 않으면 false를 반환하는 JavaScript 함수를 작성해 보겠습니다. 문제 접근 방식 가장 직관적인 방법은 0부터 9까지의 숫자 목록을 미리 만들어 두고, 입력 문자열을 한 글자씩 순회하면서 해당 숫자를 목록에서 제거하는 것입니다. 모든 자릿수를 확인한 후 목록이 비어 있다면, 0~9의 모든 숫자가 등장했다는 의미이므
문제 개요이번 글에서는 섭씨(Celsius) 또는 화씨(Fahrenheit) 단위의 온도를 나타내는 문자열을 입력받아, 반대 단위로 변환해 주는 JavaScript 함수를 작성해 보겠습니다.입력 형식은 숫자 뒤에 단위 알파벳이 붙은 문자열입니다.23F, 43C, 23F구현 아이디어온도 변환 공식은 다음과 같습니다.섭씨 → 화씨: °F = °C × 9/5 + 32화씨 → 섭씨: °C = (°F − 32) × 5/9함수는 문자열의 마지막 글자가 C인지 F인지 판별한 뒤, 해당하는 공식을 적용하고 결과를 소수점 둘째 자리까지 반올림하여
문제 설명공백으로 구분된 여러 단어로 이루어진 문자열을 입력받아, 원본 문자열의 모든 단어를 유지하되 길이가 소수(2, 3, 5, 7, 11 등)인 단어만 거꾸로 뒤집어 새로운 문자열을 만드는 JavaScript 함수를 작성해야 합니다.접근 방법주어진 숫자가 소수인지 판별하는 헬퍼 함수와 문자열을 반전시키는 헬퍼 함수를 먼저 정의합니다. 그런 다음 문장을 공백 기준으로 분리하고, 각 단어의 길이가 소수인지 확인한 후 조건에 해당하는 단어만 반전시켜 다시 하나의 문자열로 합칩니다.예시 코드const str = His father is
수학에서 분수는 다양한 형태로 표현될 수 있으며, 그중 진분수(proper fraction)를 대분수(mixed fraction)로 바꾸는 것은 매우 기본적인 변환입니다. 이번 글에서는 자바스크립트(JavaScript)를 이용해 진분수를 대분수 형태로 변환하는 방법을 알아보겠습니다.진분수란?진분수는 p/q 형태로 표현되는 분수를 말합니다. 여기서 p와 q는 모두 자연수이며, 일반적으로 분자(p)가 분모(q)보다 작거나 같은 값을 가집니다.대분수란?대분수는 정수 부분과 진분수 부분을 함께 나타낸 분수입니다. 분수의 분자(a)를 분모(
이번 글에서는 두 개의 숫자 배열을 인자로 받는 JavaScript 함수를 작성해 보겠습니다. 이때 두 번째 배열의 크기는 항상 첫 번째 배열보다 작다고 가정합니다.함수의 목표는 첫 번째 배열을 오름차순으로 정렬하되, 두 배열에 공통으로 포함된 요소들을 배열의 맨 앞쪽에 배치하는 것입니다.문제 예시예를 들어, 다음과 같은 두 배열이 주어졌다고 가정해 봅시다.const arr1 = [5, 4, 3, 2, 1];const arr2 = [2, 3];이 경우 기대되는 출력 결과는 다음과 같습니다. 공통 요소인 2와 3이 맨 앞에 오고, 나
문제 이해하기이번 글에서는 두 개의 문자열을 인수로 받는 JavaScript 함수를 작성하는 방법을 알아보겠습니다. 첫 번째 문자열은 오타가 섞여 있는 잘못 입력된 문자열이고, 두 번째 문자열은 그것의 올바른 원본 문자열입니다. 함수로 전달되는 두 문자열은 항상 길이가 같다고 가정할 수 있습니다.함수가 반환해야 할 값은 첫 번째 문자열에 존재하는 실수(오타)의 총 개수입니다.해결 접근 방식두 문자열의 길이가 동일하므로, 같은 인덱스에 위치한 문자들을 하나씩 순서대로 비교하면 됩니다. 반복문을 돌면서 각 위치의 문자가 서로 일치하는지