분류 전체보기 54

[js / 알고리즘연습] 이어 붙인 수

문제설명 정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.   나의 풀이function solution(num_list) { let string1 = ''; let string2 = ''; num_list.forEach((el, idx) => { if(el % 2 == 0) { string1 += String(el); } else { string2 += String(el); } }); return Number(string1) + Number(string2);} ..

frontend/javaScript 2024.09.12

[js / 알고리즘연습] 원소들의 곱과 합

문제설명정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.  풀이 과정  reduce를 쓰  나의 풀이function solution(num_list) { let square = num_list.reduce((acc, num) => { return acc * num; }); let sumAndSquare = num_list.reduce((acc, crr) => { return acc + crr; }); sumAndSquare = sumAndSquare**2; return square    best 풀이f..

frontend/javaScript 2024.09.12

[js / 알고리즘연습] 주사위게임2

문제설명 1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다. 세 숫자가 모두 다르다면 a + b + c 점을 얻습니다. 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다. 세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다. 세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.  풀이 과정 뭔가 깔쌈하게 풀고싶었는데 잘 안됐다.....각 조건을 변수에 담아서 분기처리 하고...식도 변수에 담아서 ..

frontend/javaScript 2024.09.12

[js / 알고리즘연습] 등차수열의 특정한 항만 더하기,

문제설명  두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요.   풀이 과정included 가 배열의 형태로 들어오니까 이 배열을 기준으로 forEach를 돌리면 되겠다....고차배열 함수를 쓸 수는 없는걸까? 하는 고   나의 풀이function solution(a, d, included) { var answer = 0; included.forEach((el, idx) => { if(el == true) answer += a + ..

frontend/javaScript 2024.09.12

[js 기본기] arguments, Promise.all(), Promise.race()

1. argumentsarguments 는 유사배열 객체이다.함수 정의 할 때에 파라미터를 정의 하지 않아도실행문에 파라미터를 넣으면 알아서 배열로 정리 해줌. 배열을 뱉어내는 것처럼 보이지만 사실은 객체라서isArray로 감별해보면 false가 나온다. 그래서 map, filter 같은 고차배열 함수를 적용하려면 array로 한번 바꾼 뒤에 적용해야 한다.   2. Promise.all()Promise.all([promise1, promise2, promise3]) .then((results) => { console.log(results); // 모든 Promise가 성공했을 때 결과가 배열로 반환됨 }) .catch((error) => { console.err..

frontend/javaScript 2024.08.22

[js 기본기] Nullish coalescing operator, prototype 메소드

1. Nullish coalescing operator|| 연산자는 0을 false로 인식한다.그래서 0을 불린값이 아닌 숫자로 인식하고 싶을 때, null 체크를 null과 undefined로만 거르고 싶을 때 || 대신 ?? 를 사용하면 됨.0 || '10'   은 무조건 10 이지만 0 ?? '10' 은 0 이 된다.   2. 배열은 객체다. const arr = [1, 2, 3]; 으로 정의 한 뒤에 arr[' name'] = 4; 하면 그대로 생성이 된다.원래 배열은  key 값이 없으니까 생성되면 안될 것 같은데..뭐 그렇다고 한다.그래서 이렇게 객체처럼 할당된 배열인지 아닌지 여부를 판별해야 할 때가 있는데그때 instanceof(arr)메소드를 쓴다고 한다.이것은 최신 문법이므로 만약 js..

frontend/javaScript 2024.08.21

[js / 알고리즘연습]프로그래머스 lv0.n개 간격의 원소들

문제설명  정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.   풀이 과정배열로 들어오니까 forEach를 돌린다idx값이 n의 배수일 때 새 배열에 push 한다   나의 풀이function solution(num_list, n) { var answer = []; num_list.forEach((el, idx) => { if(idx % n == 0) answer.push(el); }); return answer;}   best 풀이const solution = (num_list, n)..

frontend/javaScript 2024.08.19

[js / 알고리즘연습] 프로그래머스 lv1.문자 리스트를 문자열로 변환하기

문제설명문자들이 담겨있는 배열 arr가 주어집니다. arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요.  풀이 과정 배열 -> string으로 변환해야하니까 forEach를 쓰자.   나의 풀이function solution(arr) { var answer = ''; arr.forEach((el)=> { answer += el; }) return answer;}   best 풀이function solution(arr) { return arr.join("")}   아하.... join을 알면 쉽게 풀리는 문제..

frontend/javaScript 2024.07.12

[js / 알고리즘연습] 프로그래머스 lv2. 최솟값 만들기

문제설명 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 A에서 첫번째 숫자인 1, B에서 첫번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5) A에서 두번째 숫자인 4, B에서 세번째 숫자인 4를 뽑아 곱하여 더합니다. (누적된 값 : 5 + 16(4x4) = 21)..

frontend/javaScript 2024.03.11

[js 기본기] 오늘의 학습내용

1. var를 지양하자 - var는 재할당, 재선언이 가능한데 이부분에 위험부담이 큼 - let은 재할당은 가능하지만 재선언은 안됨 - const는 재선언, 재할당 불가. -> 안전한 코드를 짤 수 있음 2. scope - var의 스코프는 함수단위이기 때문에 if문 for문 안에서는 scope 개념이 적용 안됨. - if 문 안에서 재선언, 재할당을 해줄경우 전역에 있는 변수까지 오염됨. - let과 const는 block scope가 적용 되어서 if 문 내에 있는 변수의 재선언, 재할당에 전역변수가 영향받지 않음 3. javascript는 몽키패치라서 window 환경에도 접근 할 수 있음. - var로 선언을 했을 경우, 파일을 나눴어도 scope가 나뉘지 않는다. 4. 원칙 - 전역변수는 사용하..

frontend/javaScript 2024.03.10