문제 정의첫 번째이자 유일한 인수로 숫자 num을 받는 JavaScript 함수를 작성해야 합니다.이 함수는 회문(palindrome)을 얻기 위해 필요한 특별한 단계의 횟수를 반환해야 합니다. 여기서 말하는 특별한 단계란 자릿수를 뒤집은 숫자를 원래 숫자에 더하는 것입니다. 만약 그 결과가 회문이 아니라면, 결과값이 회문이 될 때까지 합산된 수를 대상으로 동일한 과정을 반복합니다.예를 들어 함수에 다음과 같이 입력한다고 가정해 보겠습니다.입력const num = 87;출력const output = 4;출력 설명결과가 4인 이유는
문제 정의수학 표현식이 담긴 문자열 str을 첫 번째이자 유일한 인수로 받는 자바스크립트 함수를 작성해야 합니다.함수의 목표는 연산자와 피연산자의 순서와 의미를 그대로 유지하면서 표현식에서 모든 괄호를 제거하는 것입니다.예를 들어, 함수의 입력이 다음과 같다면 −입력const str = u-(v-w-(x+y))-z;출력const output = u-v+w+x+y-z;접근 방법: 스택(Stack) 활용괄호를 제거할 때 가장 중요한 점은 괄호가 사라지면서 내부 항들의 부호가 바뀔 수 있다는 것입니다. 특히 마이너스(-) 기호
문제 개요JavaScript에서 양의 정수로 이루어진 배열 arr를 입력받아, 각 숫자의 자릿수 합(digit sum)이 큰 숫자부터 작은 숫자 순서대로 내림차순 정렬하는 함수를 작성해야 합니다.예를 들어, 다음과 같은 배열이 입력으로 주어졌다고 가정해 보겠습니다.입력const arr = [5, 34, 1, 13, 76, 8, 78, 101, 57, 565];출력const output = [565, 78, 76, 57, 8, 34, 5, 13, 101, 1];출력 결과 분석565 → 5 + 6 + 5 = 16 (가장 큰 자릿수 합)
문제 소개정확히 10개의 양의 정수로 구성된 배열 arr을 첫 번째이자 유일한 인수로 받아 처리하는 JavaScript 함수를 작성해야 합니다.이 함수는 전화번호 형식으로 구성된 문자열을 반환해야 합니다.예를 들어, 함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다.입력const arr = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0];출력const output = (987) 654-3210;예제 코드다음은 위 문제를 해결하는 코드입니다.const arr = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]; c
문제 소개정수 배열 arr(중복 값을 포함할 수 있음)를 첫 번째 인자로, 숫자 num을 두 번째 인자로 받는 JavaScript 함수를 작성해야 합니다.함수의 역할은 배열을 순회하면서 어떤 숫자가 num번보다 많이 등장하는지 확인하는 것입니다. 만약 그러한 요소가 존재한다면, 초과되는 등장 횟수를 삭제하여 해당 요소가 최대 num번까지만 나타나도록 제한해야 합니다.입력 예시const arr = [4, 1, 3, 1, 4, 1, 3, 4, 2];const num = 2;출력const output = [4, 1, 3, 1, 4, 3,
문제 개요JavaScript 함수를 작성해야 합니다. 이 함수는 문자열 str을 첫 번째이자 유일한 인수로 받습니다.함수는 입력 문자열을 기반으로 새로운 문자열을 생성해야 하며, 새 문자열의 각 문자는 다음 규칙에 따라 결정됩니다.해당 문자가 원본 문자열에서 한 번만 등장하면 (해당 문자가 원본 문자열에서 두 번 이상 등장하면 )또한 대소문자는 구분하지 않고 처리해야 합니다. 즉, S와 s는 같은 문자로 취급합니다.예시함수에 대한 입력이 다음과 같다면 −입력const str = Success;출력const output =
문제 정의정수 배열 arr를 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 배열에서 특정 인덱스 하나를 골라 반환해야 하며, 조건은 다음과 같습니다. 해당 인덱스를 기준으로 왼쪽에 있는 요소들의 합과 오른쪽에 있는 요소들의 합이 서로 같아야 합니다. 만약 그러한 인덱스가 존재하지 않는다면 -1을 반환해야 합니다.입력 및 출력 예시예를 들어 함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다.입력const arr = [1, 2, 3, 4, 3, 2, 1];출력const output = 3;출
문제 설명숫자 num을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 num의 팩토리얼(계승) 값이 총 몇 자리 숫자로 이루어져 있는지 계산하여 반환해야 합니다.예를 들어, 함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다 −입력const num = 7;출력const output = 4;출력 설명7!의 값은 5040이며, 이 숫자는 총 4자리로 이루어져 있기 때문입니다.접근 방법팩토리얼은 입력값이 조금만 커져도 기하급수적으로 증가하기 때문에, 실제 값을 직접 계산하면 금방 Ja
문제 이해하기길이가 2n인 정수 배열 arr를 첫 번째이자 유일한 인자로 받는 JavaScript 함수를 작성해야 합니다.함수의 목표는 이 정수들을 n개의 쌍, 즉 (a1, b1), (a2, b2), ..., (an, bn) 형태로 묶은 뒤, 모든 i에 대해 min(ai, bi)의 합이 최대한 커지도록 만드는 것입니다.예를 들어, 함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다.const arr = [1, 4, 3, 2];그렇다면 기대되는 출력은 다음과 같습니다.const output = 4;출력 결과 해설n은 2이며, 쌍을
문제 소개문장 형태의 문자열 str을 첫 번째이자 유일한 인수로 받는 자바스크립트 함수를 작성해야 합니다.이 함수가 해야 할 일은 다음과 같습니다. 문장 전체의 공백과 단어 순서는 그대로 유지하면서, 각 단어 내부의 문자들만 거꾸로 뒤집는 것입니다.예를 들어, 함수에 아래와 같은 입력이 주어졌다고 가정해 보겠습니다.const str = this is some sample string;그렇다면 기대되는 출력 결과는 다음과 같습니다.const output = siht si emos elpmas gnirts;풀이 코드다음은 위 문제를 해
문제 개요시:분 형식으로 표현된 24시간제 시간 문자열 배열을 입력받아, 배열 내 임의의 두 시점 사이의 시간 차이 중 가장 작은 값을 분 단위로 구하는 JavaScript 함수를 작성해야 합니다.예를 들어 함수에 다음과 같은 배열이 입력된다고 가정해 보겠습니다.const arr = [23:59,00:00];이때 함수는 아래와 같은 결과를 반환해야 합니다.const output = 1;23:59와 다음 날 00:00 사이의 시간 차이가 정확히 1분이기 때문입니다. 즉, 자정을 넘어가는 시간 차이도 올바르게 계산해야 한다는 점이 이
문제 상황JavaScript에서 사용자 정의 데이터 타입 Streak를 만들어야 합니다. 이 클래스는 값(value)과 연산(operation)을 번갈아 가며 원하는 만큼 무한히 체이닝(chaining)할 수 있어야 합니다.사용할 수 있는 값은 다음 문자열 중 하나입니다.→ one, two, three, four, five, six, seven, eight, nine사용할 수 있는 연산은 다음 문자열 중 하나입니다.→ plus, minus예를 들어, 우리가 만든 클래스를 다음과 같이 사용한다면,Streak.one.plus.five.
문제 소개 초(second) 단위의 숫자 하나를 입력받아, 그 안에 포함된 년, 일, 시간, 분, 초를 사람이 읽기 쉬운 문자열 형태로 변환해 반환하는 자바스크립트 함수를 만들어 보겠습니다. 계산을 단순화하기 위해 이 글에서는 모든 연도를 365일로 가정하며, 윤년은 고려하지 않습니다. 예를 들어 함수에 다음과 같은 값이 입력되면, const num = 5454776657; 반환되어야 할 문자열은 다음과 같습니다. 172년, 353일, 23시간, 44분 그리고 17초 접근 방식: 나눗셈과 나머지 연산 이 문제의 핵심은 나눗셈(/)
문제 소개 숫자 num을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다. 이 함수의 목표는 입력받은 숫자의 자릿수를 모두 그대로 사용하면서(순서만 재배열하여), 입력값보다 바로 다음으로 큰 수를 찾아 반환하는 것입니다. 조건을 만족하는 수가 존재하지 않는다면 함수는 -1을 반환해야 합니다. 입력 및 출력 예시 const num = 5656; 위 입력에 대한 기대 출력은 다음과 같습니다. const output = 5665; 출력 설명 5665는 5656의 자릿수(5, 6, 5, 6)를 모두 그대로 사
문제 이해하기먼저 다음과 같은 정수 배열이 있다고 가정해 보겠습니다.const arr = [4, 3, 4, 7, 5, 2, 3, 4, 3, 2, 3, 4];이 배열의 각 요소를 y축 값으로 표현하고, 인접한 요소들은 x축에서 단위 거리만큼 떨어진 점으로 배치하면 아래와 같은 그래프가 그려집니다.그래프를 살펴보면 이 배열에는 두 개의 피크(국소 최댓값)가 존재함을 알 수 있습니다. 하나는 인덱스 3에 있는 값 7, 다른 하나는 인덱스 7에 있는 값 4입니다.문제 정의우리가 작성해야 할 것은 정수 배열 arr을 첫 번째이자 유일한 인수
문제 이해하기첫 번째 인수로 문자열 배열 arr을, 두 번째 인수로 특수 문자 배열 starters를 받는 JavaScript 함수를 작성해야 합니다.starters 배열에는 주석을 시작할 수 있는 문자들이 담겨 있습니다. 작성할 함수는 배열 arr의 각 문자열을 순회하면서 주석에 해당하는 부분을 모두 제거한 새로운 배열을 반환해야 합니다.입력 예시예를 들어 함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다.const arr = [ red, green !blue, jasmine, #p
문제camelCase 형식의 문자열을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 입력된 문자열을 단어 사이에 공백을 넣어 분리한 새로운 문자열을 만들어 반환해야 합니다.예를 들어, 함수의 입력이 다음과 같다면 −입력const str = 'thisIsACamelCasedString';출력const output = 'this Is A Camel Cased String';예제 코드다음은 이 문제를 해결하는 코드입니다 −const str =
문제 소개이번 글에서는 문자 하나하나로 구성된 배열 arr을 유일한 인자로 받아, 전체 이동의 최종 방향을 구하는 JavaScript 함수를 작성해 보겠습니다.배열에는 다음 네 가지 문자만 포함될 수 있습니다.N → 북쪽(North) 방향S → 남쪽(South) 방향W → 서쪽(West) 방향E → 동쪽(East) 방향각 문자는 해당 방향으로 단위 거리만큼 이동한다는 의미입니다. 그리고 배열 안에서 서로 반대되는 두 방향, 즉 (S와 N) 또는 (E와 W)가 만나면 서로의 이동을 상쇄합니다. 따라서 우리 함수는 배열 전체를 종합했을
문제 상황JavaScript 함수를 작성해야 합니다. 이 함수는 숫자 배열 arr을 첫 번째 인수로, 숫자 num(배열 길이 이하)을 두 번째 인수로 받습니다.함수는 배열 arr에서 길이가 num인 각각의 연속된(인접한) 부분 배열의 합을 계산하고, 그 합들을 새 배열의 요소로 만들어 최종적으로 반환해야 합니다.입력 예시예를 들어 함수에 다음과 같은 입력이 주어졌다고 가정해 보겠습니다.const arr = [1, 2, 3, 4, 5, 6];const num = 2;이 경우 기대하는 출력은 다음과 같습니다.const output =
문제 정의숫자 num을 첫 번째이자 유일한 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 num의 각 자릿수를 모두 더한 값이 회문(팰린드롬) 숫자라면 true를, 그렇지 않다면 false를 반환해야 합니다.입력 예시const num = 781296;출력 예시const output = true;출력 설명781296의 각 자릿수를 더하면 다음과 같습니다.7 + 8 + 1 + 2 + 9 + 6 = 3333은 앞에서 읽어도 뒤에서 읽어도 33으로 동일한 회문 숫자이므로, 결과는 true가 됩니다.구현 코드const n