본문 바로가기

Algorithm33

[JavaScript] 프로그래머스 - 두 정수 사이의 합 /* 문제 : a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 구해라 자료 : 정수 a, b 조건 : a와 b의 대소관계는 정해져있지 않습니다. a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. 계획 : a와 b중에 큰 숫자를 max 작은숫자를 min으로 저장해서 for문을 돌려서 합을 리턴함 반성 : */ const solution = (a, b) => { const max = Math.max(a, b); const min = Math.min(a, b); let sum = 0; for (let i = min; i { let sum = 0; for (let i = Math.min(a, b); i 2022. 9. 22.
[JavaScript] 프로그래머스 - 콜라츠 추측 /* 문제 : 주어진 수가 1이 될 때까지 작업을 몇 번이나 반복해야 하는지 반환하는 함수를 만들어라 자료 : 정수 num 조건 : 주어진 수가 1인 경우에는 0 return 작업을 500번 반복할 때까지 1이 되지 않는다면 –1 return 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 계획 : 짝수인지 홀수인지 판별후 짝수면 2로 나눔 홀수면 3으로 나옴 이거를 계속 재귀로 반복?? ㄷㄷ 반성 : 처음 재귀 함수로 풀때 조건문 거는 걸 제대로 파악하지 못해서 시간이 좀 걸렸었다. 분하다... */ const solution = (num, count = 0) => { if (num.. 2022. 9. 22.
[JavaScript] 프로그래머스 - 나머지가 1이 되는 수 찾기 /* 문제 : n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x을 구하라 자료 : 자연수 n 조건 : n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수를 구해야함 계획 : n % 1 === 1 인 수를 반복문을 돌려 찾는다. 반성 : i가 순차적으로 커지는 거라 1을 만나자마자 리턴 되는 게 가장 작은 숫자일텐데 첫풀이를 굳이 배열에 모든 경우의 수를 집어넣어 최솟값을 찾는 뻘짓을 했다... */ const solution = (n) => { let result = []; for (let i = 1; i < n; i++) { if (n % i === 1) { result.push(i); } } return Math.min(...result); }; const solution2 =.. 2022. 9. 22.
[JavaScript] x만큼 간격이 있는 n개의 숫자 /* 문제 : 정수 x와 자연수 n을 입력 받았을 때, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 구하라 자료 : 정수 x, 자연수 n 조건 : 계획 : 빈 배열에 반복문으로 x * i 만큼 추가하는데 배열의 length가 n만큼 반성 : map대신 reduce를 사용하는 방법이 미숙하다. */ const solution = (x, n) => { let result = []; for (let i = 1; i { return Array(n) .fill(x) .map((v, i) => (i + 1) * v); }; // 재귀함수 const solution3 = (x, n, count = 1, array = []) => { array.push(x * count); if (count >= n) {.. 2022. 9. 21.