본문 바로가기

Algorithm/인프런(inflearn)86

[ 자바스크립트(JavaScript) ] 06 - 홀수 📍 06 - 홀수 짝수와 홀수가 섞인 배열에서 홀수를 고를 때는 filter를 이용해서 걸렀고, 홀수들 중 최소값은 Math.min 함수를 이용했다. 마지막으로 홀수끼리의 합은 reduce를 이용했다. solution([12, 77, 38, 41, 53, 92, 85]); function solution(arr){ let OddArr = arr.filter((item) => item % 2 !== 0); let sumOddArr = OddArr.reduce((acc, cur) => {return acc + cur}, 0); console.log(sumOddArr); console.log(Math.min(...OddArr)); } 2021. 8. 11.
[ 자바스크립트(JavaScript) ] 05 - 최솟값 구하기 📍 05 - 최솟값 구하기 가장 작은 수를 구하는 문젠데, 배열로 주어졌을 때는 Math.min 함수에 단독으로 배열을 넘겨주면 NaN값이 반환되므로 spreadOperator(...)를 사용해서 iterable한 값 중에서 Math.min을 구하거나 apply 함수를 이용하면 된다. 마지막 반복문을 이용하는 방법은 초기 min값을 JS에서 안정적으로 높은 값인 MAX_SAFE_INTEGER으로 할당하고 그보다 낮은 값을 보면 낮은 값을 할당하는 방법도 있다. console.log(solution([5, 3, 7, 11, 2, 15, 17])); // apply function solution(...arr){ return Math.min.apply(null, arr); } // Math.min funct.. 2021. 8. 10.
[ 자바스크립트(JavaScript) ] 04 - 1부터 N까지 합 출력하기 📍 04 - 1부터 N까지 합 출력하기 단순하게 값을 누적하는 문제다. sum 공식을 사용하거나 반복문을 사용했다. console.log(solution(6)); // sum공식 function solution(n) { return (n * (n + 1)) / 2; } // 반복문 function solution(n) { let answer = 0; for (let i = 1; i 2021. 8. 10.
[ 자바스크립트(JavaScript) ] 03 - 연필 개수 📍 03 - 연필 개수 1 다스는 12자루씩 들어가므로 12자리로 나눴을 때 나머지가 있다면 몫에 +1을 하는 방법도 있지만, 그보다 간편하게 Math.ceil 함수로 몫에 소수점이 있으면 +1 시켜줄 수 있다. python에서는 Math 라이브러리를 호출해야 됐는데 JS에서는 import없이 사용 가능해서 편하다. 처음에는 음수 floor를 이용해서 풀었다. console.log(solution(25)); // 음수 floor function solution(n) { return -(Math.floor(-n / 12)); } // Math.ceil function solution1(n){ return Math.ceil(n / 12); } 2021. 8. 10.
[ 자바스크립트(JavaScript) ] 02 - 삼각형 판별하기 📍 02 - 삼각형 판별하기 c의 길이가 가장 클 때, a + b > c를 만족하면 삼각형을 만들 수 있는 조건이 충족된다. 하지만, 입력에서 매번 같은 자리에 max길이가 들어오는것이 아니므로, 어떤 위치에서 변수의 길이가 가장 긴지 확인해야한다. 이전에 풀었던 세 수 중 최솟값 문제에서 min의 값을 추렸다면, 이번엔 반대로 max의 값을 찾아야한다. 이후 max의 값을 찾았다면, 1번 코드처럼 각각의 조건을 달아 하드코딩해도 되지만, 2번 코드처럼 a + b + c에서 max를 뺀 값이 max보다 크면 삼각형이 성립하기 때문에 더욱 간단하게 작성 할 수 있다. // 1번 코드 console.log(solution(6, 7, 11)); function solution(a, b, c) { let max.. 2021. 8. 9.