2025/12 6

자바스크립트에서 제네레이터(Generator)

제네레이터(Generator)는 자바스크립트에서 반복 가능한 데이터를 만들거나, 실행 흐름을 중간에 멈췄다가 다시 이어서 실행할 수 있게 해주는 특수한 함수입니다. 제네레이터 함수는 실행 시 즉시 코드가 실행되는 대신 이터레이터 객체를 반환합니다.이터레이터 객체(Iterator Object)란 데이터를 순서대로 하나씩 꺼내어 반복 처리할 수 있도록 해주는 객체로, '반복자'라고도 불리며 next()와 같은 메소드를 통해 상태를 유지하며 다음 값을 반환하는 역할을 합니다.이 이터레이터는 next() 메서드를 통해 하나씩 값을 꺼낼 수 있으며, yield 지점에서 멈췄다가, 다음 next() 호출 시 그 지점부터 다시 실행됩니다.function* myGenerator() { yield 1; yield ..

프로그래머스 자바스크립 코딩 기초 트레이닝 - 가까운 1 찾기 & 첫 번째로 나오는 음수

문제정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.제한사항3 ≤ arr의 길이 ≤ 100'000arr의 원소는 전부 1 또는 0입니다. 고민한 점 배열 내의 특정한 값을 찾기 위해 어떻게 반복문을 구성해야 할 지 고민했습니다.가장 익숙한 for문으로 첫 값을 주어진 정수 idx로 시작해서 arr배열의 길이보다 작으면 1씩늘어나는 식으로 배열을 돌아서 arr[i]의 값이 1과 일치한다면 i를 그대로 return하고 아니면 -1를 return 하는 식으로 구성해보았습니다. 해결 과정functio..

프로그래머스 자바스크립 코딩 기초 트레이닝 - 접미사 배열

문제어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항my_string은 알파벳 소문자로만 이루어져 있습니다.1 ≤ my_string의 길이 ≤ 100 고민한 점문자열을 나누는 것은 for문을 돌리며 slice()메소드를 사용하면 될 것이라 생각했습니다.그러나 가장 중요한 사전순으로 정렬하는 방법을 몰라서 어떻게 해야 할지 고민했습니다.mdn을 살펴본 결과, 문자열의 유니코..

프로그래머스 자바스크립트 코딩 기초 트레이닝 - 배열 만들기4

문제정수 배열 arr가 주어집니다. arr를 이용해 새로운 배열 stk를 만드려고 합니다.변수 i를 만들어 초기값을 0으로 설정한 후 i가 arr의 길이보다 작으면 다음 작업을 반복합니다.만약 stk가 빈 배열이라면 arr[i]를 stk에 추가하고 i에 1을 더합니다.stk에 원소가 있고, stk의 마지막 원소가 arr[i]보다 작으면 arr[i]를 stk의 뒤에 추가하고 i에 1을 더합니다.stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다.위 작업을 마친 후 만들어진 stk를 return 하는 solution 함수를 완성해 주세요.고민한 점새로운 배열 stk을 어떻게 선언해 줄지, 어떻게 반복 작업을 해줄 지 고민했습니다.for문을..

프로그래머스 자바스크립트 코딩 기초 트레이닝 - 배열 만들기2

문제정수 l과 r이 주어졌을 때, l 이상 r 이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return하는 solution 함수를 완성해 주세요.만약 그런 정수가 없다면, -1이 담긴 배열을 return 합니다. 고민한 점두 정수 사이에서 특정 값만 추출해서 배열로 만드는 것은 익숙하지만 두 정수 사이에서 '특정 숫자만으로 이루어진' 숫자들을 모아서 배열로 만들려면 어떻게 해야 할지 고민이었습니다.자바스크립트에서 특정 문자열을 포함하는지 찾아내는 정규 표현식 기능을 발견하여, 이번에는 문자열로 변환 후 작업을 해보기로 했습니다. 해결 과정정규 표현식 1. 먼저 두 정수 사이를 for문으로 돌면서 사이에 있는 수들을 전부 찾아내야 한다고 생각했습니다. 그리고..

프로그래머스 자바스크립트 코딩 기초 트레이닝 - 원소들의 곱과 합

문제 정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요. 제한사항2 =1 =고민한 점 어떻게 배열 속의 요소들을 꺼내서 계산할지 고민했습니다. 자주 쓰던 for문을 생각해봤지만 지정된 문법으로 코드를 좀 더 간략하고 보고 이해하기 쉽게 적어보고 싶었습니다. 해결 과정ruduce()function solution(num_list) { const sumOfTime = num_list.reduce((accumulator, currentValue) => accumulator * currentValue, 1); const sumOfList = num_list.reduce((a..