목록분류 전체보기 (83)
kohigowild
🔍 고차 함수의 기본 정의 고차 함수란 함수를 파라미터로 전달 받거나 연산의 결과로 반환해 주는 메서드를 말한다. 자바스크립트를 함수형 프로그래밍에 알맞은 언어로 만들어 주는 특성이다. 고차 함수의 개념을 완전히 이해하기 위해서는 함수형 프로그래밍과 퍼스트 클래스 함수의 개념을 이해하는 것이 선행되어야 한다. 함수형 프로그래밍 함수형 프로그래밍은 함수를 다른 함수의 파라미터로 넘길 수도 있고 리턴 값으로 함수를 받을 수도 있는 프로그래밍 형태이다. 순수 함수 + 보조 함수의 조합으로 로직 내에 존재하는 조건문, 반복문을 제거하여 복잡성을 해결하고, 변수의 사용을 억제하여 상태 변경을 피하려는 프로그래밍 패러다임을 말한다. 즉, 순수 함수를 통해 부수 효과를 최대한 억제하여 오류를 피하고 프로그래밍의 안정..
이상한 문자 만들기 👾 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 👾 제한 조건 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 👾 나의 답안 function solution(s) { let words = s.split(" "); let arr = []; for (let i = 0; i < words.length; i++) { for (let j = 0; j < words[i].le..
영어 끝말잇기 👾 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.이전에 등장했던 단어는 사용할 수 없습니다.한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다.2번 사람이 자신의 첫 번째..
🔍 객체(Object)의 기본 정의 자바스크립트는 객체 기반의 스크립트 언어이고, 자바스크립트를 이루고 있는 대부분의 것들이 객체로 존재한다. 따라서 자바스크립트의 기초를 다지기 위해서 객체에 대한 이해는 필수적이다. 자바스크립트에는 총 8가지의 자료형이 있다. 문자(String) 숫자(Number) Bigint: 길이 제약 없이 정수를 나타낼 수 있다. 불리언(Boolean) 심볼(Symbol): 객체의 고유한 식별자를 만들 때 사용한다. Null: 미지의 값을 뜻하며, 타입은 존재하지만 값은 없다. Undefined: 값도 없고, 타입도 지정되지 않은 상태 Object 이들 중 Object를 제외한 나머지는 오직 하나의 데이터만 담을 수 있어 원시형(Primitive type)이라 부른다. Objec..
시저 암호 👾 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 👾 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. 👾 나의 답안 function solution(s, n) { let result = ""; for (let i = 0; i < s.length; i++) { let s..
없는 숫자 더하기 👾 문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 👾 제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. 👾 나의 답안 function solution(numbers) { let answer = 0; for (let i = 0; i < 10; i++) { if (!numbers.includes(i)) { answer += i; } } return answer; } .includes() 메서드를 사용해 배열에 없는 값을 변수..
👾 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함..
👾 문제 설명 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 👾 제한사항 seoul은 길이 1 이상, 1000 이하인 배열입니다. seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. "Kim"은 반드시 seoul 안에 포함되어 있습니다. 👾 나의 답안 function solution(seoul) { for (i = 0; i < seoul.length; i++) { if (seoul[i] === "Kim") { return `김서방은 ${i}에 있다`; } } } for loop 사용 배열의 ..