Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript

  1. JavaScript로 엘리베이터가 이동한 총 층수 구하는 방법

    문제건물 엘리베이터가 일정 시간 동안 정차한 층 번호를 요소로 가진 배열을 입력받는 JavaScript 함수를 작성해야 합니다. 그리고 이 데이터를 바탕으로 해당 시간 동안 엘리베이터가 이동한 총 층수를 반환해야 합니다.접근 방법핵심 아이디어는 매우 간단합니다. 엘리베이터가 한 층에서 다음 층으로 이동할 때마다 두 층 번호의 차이만큼 움직이게 되므로, 배열에서 인접한 두 요소의 차이(절댓값)를 모두 더하면 전체 이동 층수를 구할 수 있습니다.예를 들어 배열이 [7, 1, 7, 1]이라면 다음과 같이 계산됩니다.7층 → 1층 : 6층

  2. 자바스크립트로 자릿수 거듭제곱 합이 입력 수의 배수가 되게 하는 k 찾기

    문제 정의 양의 정수 n(예: abcd... 형태로 표현되며, a, b, c, d...는 각각의 자릿수)와 양의 정수 p를 입력받는 자바스크립트 함수를 작성해야 합니다. n의 각 자릿수를 p부터 시작해 하나씩 증가하는 거듭제곱으로 계산한 값들의 합이, 어떤 양의 정수 k에 대해 k × n과 정확히 같아지도록 만드는 k가 존재하는지 찾습니다. 다시 말해 다음 조건을 만족하는 정수 k가 존재하는지 묻는 것입니다 − (a ^ p + b ^ (p+1) + c ^ (p+2) + d ^ (p+3) + ...) = n × k 조건을 만족하

  3. JavaScript로 0부터 n까지 셀 때 숫자 9가 등장하는 횟수 구하기

    문제 소개이번 문제에서는 숫자 n을 인자로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 0부터 n까지 숫자를 하나씩 세어 나가는 과정에서 숫자 9가 총 몇 번 등장하는지 계산하고, 그 횟수를 반환해야 합니다.예를 들어 n이 100이라면, 9, 19, 29처럼 일의 자리에 9가 들어가는 경우와 90~99처럼 십의 자리에 9가 들어가는 경우를 모두 포함하여 총 20번의 9가 등장하게 됩니다.예제 코드다음은 위 문제를 해결하는 JavaScript 코드입니다 −const num = 100;const countNi

  4. JavaScript 사용자 정의 데이터 구조로 단어 추가 및 와일드카드 검색 구현하기

    문제JavaScript로 다음 두 가지 연산을 지원하는 데이터 구조를 설계해야 합니다.addWord – 데이터 구조에 새로운 단어를 추가합니다. 배열(Array)처럼 이미 존재하는 자료구조를 활용해 데이터를 저장할 수 있습니다.search – 일반 문자열 또는 정규 표현식 형태의 패턴을 검색합니다. 패턴은 소문자 a-z 또는 .으로만 구성되며, .은 임의의 한 글자를 대체할 수 있는 와일드카드 역할을 합니다.예를 들어 다음과 같이 동작해야 합니다.addWord(sir) addWord(car) addWord(mad) search(he

  5. JavaScript로 두 문자열에서 만들 수 있는 가장 긴 고유 문자열 구하기

    문제 이해하기이번 문제에서는 알파벳 소문자(a~z)만으로 이루어진 두 개의 문자열 s1과 s2를 입력받는 JavaScript 함수를 작성해야 합니다.함수는 두 문자열에 등장하는 문자들을 활용하여 정렬된 새로운 문자열을 반환해야 합니다. 단, 이 문자열은 다음 조건을 충족해야 합니다.가능한 한 가장 긴 길이를 가져야 합니다.모든 문자는 서로 달라야 하며(중복 제거), 각 문자는 딱 한 번만 포함되어야 합니다.문자들은 s1 또는 s2 어느 쪽에서든 가져올 수 있습니다.해결 접근 방식이 문제를 해결하는 핵심 흐름은 다음과 같습니다.두 문

  6. JavaScript로 생년월일에서 생명 경로 숫자(Life Path Number) 계산하기

    생명 경로 숫자란?생명 경로 숫자(Life Path Number)는 점성술·수리학에서 개인의 삶의 방향을 나타내는 숫자로, 생년월일에 포함된 모든 숫자를 각각 더해 한 자릿수가 될 때까지 반복해서 줄여서 계산합니다.문제 정의우리는 yyyy-mm-dd 형식의 날짜 문자열을 입력받아 해당 생년월일의 생명 경로 숫자를 반환하는 JavaScript 함수를 작성해야 합니다.예를 들어, 날짜가 1999-06-10이라면 다음과 같이 계산할 수 있습니다.연도 : 1 + 9 + 9 + 9 = 28 → 2 + 8 = 10 → 1 + 0 = 1 월 :

  7. 자바스크립트에서 숫자 한 자리만 옮겨 만들 수 있는 가장 작은 수 구하기

    문제 이해하기양의 정수 n이 주어졌을 때, 단 한 번의 연산만 허용하여 만들 수 있는 가장 작은 수를 구하는 자바스크립트 함수를 작성해야 합니다. 여기서 허용되는 연산은 다음과 같습니다.숫자의 특정 자리를 하나 선택해 그 자리의 숫자를 제거한 뒤, 같은 위치 또는 다른 위치에 다시 삽입하는 것입니다. 이 연산을 통해 얻을 수 있는 가장 작은 수가 곧 정답이 됩니다.예를 들어 354166이 입력으로 주어지면, 네 번째 자리의 1을 맨 앞으로 옮겨 135466을 만들 수 있습니다.풀이 코드다음은 위 문제를 해결하는 자바스크립트 코드입니

  8. JavaScript에서 n번째 회문(팰린드롬) 수 찾기

    문제 정의숫자 n을 인자로 받는 자바스크립트 함수를 작성해야 합니다. 이 함수는 0부터 세었을 때 n번째에 해당하는 회문(팰린드롬) 수를 반환해야 합니다.예를 들어 첫 번째 회문은 0, 두 번째는 1, 열 번째는 9입니다. 10은 앞뒤가 같지 않아 회문이 아니므로, 열한 번째 회문은 11이 됩니다.예제 코드다음은 위 문제를 해결하는 코드입니다.const num = 31;const findNthPalindrome = (num = 1) => {   const isPalindrome = (num = 1) =>

  9. JavaScript로 숫자 문자열을 0과 1의 이진 코드 문자열로 인코딩하기

    이 글에서는 십진수를 나타내는 문자열을 받아 특정 규칙에 따라 0과 1로만 이루어진 문자열로 변환(인코딩)하는 JavaScript 함수를 만드는 방법을 알아봅니다.문제 정의우리는 십진수를 표현하는 문자열을 입력받는 함수를 작성해야 합니다. 이 함수는 다음 규칙에 따라 각 숫자를 이진 형태로 인코딩해야 합니다.n의 각 자릿수 d에 대해:d의 비트 수를 k라고 할 때, 0을 (k-1)번 반복해서 쓴 뒤 그 뒤에 1을 붙입니다.이어서 숫자 d 자체를 이진수 문자열로 작성합니다. 이때 가장 오른쪽 비트가 최하위 비트(LSB)입니다.마지막으

  10. JavaScript에서 유리수를 단위분수의 합으로 분해하기

    문제정확히 두 개의 숫자로 이루어진 배열을 인수로 받는 JavaScript 함수를 작성해야 합니다.첫 번째 요소는 어떤 유리수의 분자를, 두 번째 요소는 동일한 유리수의 분모를 나타냅니다.이 함수는 각각 두 개의 요소를 가진 하위 배열들로 구성된 배열을 반환해야 합니다. 이때 하위 배열들이 나타내는 유리수들을 모두 더하면 입력된 유리수와 같아져야 하며, 모든 하위 배열의 분자는 반드시 1이어야 합니다.또한 하위 배열의 개수는 가능한 한 최소가 되도록 만들어야 합니다.이처럼 분자가 1인 분수(단위분수)의 합으로 유리수를 표현하는 것을

  11. JavaScript reduce() 메서드로 배열 요소의 곱 구하기

    문제 상황JavaScript로 배열을 다루다 보면 배열에 담긴 모든 숫자 요소를 곱한 결과가 필요한 경우가 있습니다. 예를 들어 여러 배율이나 확률 값을 한 번에 계산할 때 유용합니다.이번 글에서는 배열 arr를 인자로 받아, 배열의 모든 요소를 곱한 값을 구해 반환하는 함수를 작성하는 방법을 알아보겠습니다.reduce() 메서드란?reduce()는 배열의 각 요소를 순회하면서 콜백 함수를 실행하고, 그 결과를 하나의 값으로 누적(accumulate)하는 배열 내장 메서드입니다. 합계뿐만 아니라 곱셈, 객체 병합 등 다양한 형태의

  12. JavaScript에서 10진수를 팩토리얼 진법으로 인코딩·디코딩하는 방법

    문제 정의 팩토리얼 진법(계승 진법)은 숫자의 거듭제곱이 아닌 팩토리얼을 밑으로 사용하여 수를 표현하는 독특한 기수법입니다. 이 체계에서 가장 오른쪽 자릿수는 항상 0이며 0!(=1)을 밑으로 합니다. 그 앞 자릿수는 0 또는 1만 가능하고 1!을 밑으로 하며, 다시 그 앞 자릿수는 0, 1, 2 중 하나이고 2!를 밑으로 합니다. 일반적으로 뒤에서 n번째 자릿수는 항상 0부터 n 사이의 값이며 n!을 밑으로 사용합니다. 이 문제를 해결하려면 두 개의 함수가 필요합니다. 첫 번째 함수는 10진수를 입력받아 팩토리얼 진법 표현 문자

  13. JavaScript 배열에서 숫자와 문자열 숫자의 합계 차이 구하기

    문제 소개숫자(number) 타입의 정수와 문자열(string) 형태로 표현된 정수가 섞여 있는 배열을 입력받아 처리하는 JavaScript 함수를 작성해야 합니다.함수가 수행해야 할 작업은 다음과 같습니다.문자열로 표현된 정수들은 모두 더합니다.숫자 타입인 정수들의 총합을 구한 뒤, 여기서 문자열 정수의 합을 뺍니다.즉, 최종 결과는 (숫자 타입 요소의 합) − (문자열 숫자 요소의 합)이 됩니다.예제 코드다음은 위 문제를 해결하는 코드입니다.const arr = [5, 2, 4, 7, 4, 2, 7, 9]; { &nbs

  14. JavaScript에서 마지막 문자를 기준으로 단어 정렬하는 방법

    문제 소개문자열 형태의 여러 단어(str)를 입력받아, 각 단어의 마지막 문자를 기준으로 알파벳순으로 정렬한 결과를 반환하는 JavaScript 함수를 작성해야 합니다.이때 두 단어의 마지막 글자가 서로 같다면, 입력 문자열에서 처음 등장한 순서를 그대로 유지해야 한다는 조건이 있습니다.예제 코드다음은 위 문제를 해결하는 코드입니다.const str = this is some sample string; const sortByLast = (str = ) => { const arr = str.split( ); con

  15. JavaScript에서 slice() 없이 연도가 속한 세기를 찾는 방법

    문제 개요연도를 나타내는 숫자 하나를 입력받아, 해당 연도가 몇 번째 세기에 속하는지 계산하는 JavaScript 함수를 작성해야 합니다.예를 들어 다음과 같습니다.1864년 → 19세기2021년 → 21세기핵심 규칙은 간단합니다. 1~100년은 1세기, 101~200년은 2세기처럼 100년 단위로 세기가 하나씩 늘어나며, 1900년처럼 100으로 정확히 나누어떨어지는 해는 그대로 그 세기(19세기)에 포함됩니다.구현 코드const year = 1956;const findCentury = (year) => { &nbs

  16. JavaScript에서 문자열의 일부를 재배열해 다른 문자열을 만들 수 있을까?

    문제 정의두 개의 문자열 str1과 str2를 인자로 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 str1에 포함된 문자들 중 일부 또는 전부를 재배열하여 str2와 동일한 문자열을 만들 수 있으면 true를, 그렇지 않으면 false를 반환해야 합니다.예를 들어 str1 = rkqodlw, str2 = world라고 가정해 보겠습니다. str1에는 w, o, r, l, d가 모두 포함되어 있으므로, 이 문자들을 재배열하면 world를 만들 수 있습니다. 따라서 함수는 true를 반환해야 합니다.풀이 코드const

  17. JavaScript 문자열에서 모음을 1부터 시작하는 인덱스 번호로 바꾸는 방법

    문제 이해하기이번 문제에서는 문자열을 하나 입력받아, 문자열 안에 포함된 모든 모음(a, e, i, o, u)을 자신이 위치한 인덱스 번호(1부터 시작)로 바꾸는 JavaScript 함수를 작성해야 합니다.예를 들어 문자열의 두 번째 글자가 모음이라면, 그 글자는 숫자 2로 대체되어야 합니다.코드 구현다음은 위 문제를 해결하는 전체 코드입니다 −const str = cancotainsomevowels;const replaceVowels = (str = ) => {  const vowels = aei

  18. JavaScript로 배열에서 가장 작은 n개의 숫자를 원래 순서 그대로 추출하기

    문제숫자로 이루어진 배열 arr과 숫자 n을 인자로 받는 JavaScript 함수를 작성해야 합니다.이 함수는 배열 arr에서 가장 작은 n개의 숫자를 추출하되, 원래의 상대적 순서는 그대로 유지해야 합니다. 즉, 오름차순이나 내림차순으로 새롭게 정렬하는 것이 아니라, 원본 배열에서의 등장 순서를 그대로 따라야 한다는 의미입니다.예제 코드다음은 해당 기능을 구현한 코드입니다 −const arr = [6, 3, 4, 1, 2];const num = 3;const smallestInOrder = (arr = [], num)

  19. JavaScript로 문자열 내 특정 문자 위치 서로 바꾸기

    문제 정의이번 문제에서는 k, l, m 세 글자만으로 구성된 문자열을 입력받는 JavaScript 함수를 작성해야 합니다.함수가 수행할 작업은 문자열 속 모든 k를 l로, l을 k로 서로 교환하되, m은 원래 자리 그대로 유지하는 것입니다.코드 구현다음은 위 문제를 해결하는 코드입니다 −const str = 'kklkmlkk'; const switchPositions = (str = '') => {    let res = "";    

  20. JavaScript에서 배열 변환 후 최소 합계 구하기

    문제 이해하기양의 정수로 이루어진 배열을 입력받아, 다음 연산을 필요한 만큼 반복 적용한 뒤 더 이상 변환이 불가능한 시점의 배열 요소 합계를 반환하는 JavaScript 함수를 작성해야 합니다.if arr[i] > arr[j] then arr[i] = arr[i] - arr[j]즉, 배열 안에 서로 다른 두 요소가 존재하는 한, 큰 값에서 작은 값을 빼는 연산을 계속 수행할 수 있습니다. 모든 요소가 같아지면 더 이상 변환할 수 없으며, 그때의 합계가 정답이 됩니다.예제 코드재귀 호출을 활용한 풀이는 다음과 같습니다.cons

Total 5929 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:18/297  20-컴퓨터/Page Goto:1 12 13 14 15 16 17 18 19 20 21 22 23 24