inflearn logo
강의

Course

Instructor

Introduction to Javascript Algorithm Problem Solving (Coding Test Preparation)

6. Odd

reduce, foreach 메서드로 풀어도 되나요

312

Joy Lee

13 asked

0

안녕하세요 강사님.
저는 이번 풀이에서 forEach로 홀수 배열을 만들고
reduce로 합을, sort로 최솟값을 구했는데
이렇게 푸는 것과 for문으로 푸는 것의 차이가 궁금합니다.
메서드를 많이 쓰면 그만큼 효율이 떨어질까요?
 
// 홀수
function solution(arr) {
  let odd = [];
  let sum_odd = 0;
  let min_odd = 0;

  arr.forEach((num) => {
    if (num % 2 === 1) {
      odd.push(num);
    }
  });

  sum_odd = odd.reduce((a, b) => a + b);
  min_odd = odd.sort((a, b) => a - b)[0];

  return `${sum_odd} ${min_odd}`;
}

console.log(solution([12, 77, 38, 41, 53, 92, 85])); // 256 41

javascript 코테 준비 같이 해요!

Answer 1

0

Jade Kang

reduce를 쓰신다면 forEach 와 reduce 둘다 loop을 하기 때문에 처음부터 forEach 없이 하시면 더 간단히 쓸 수 있습니다. Method를 사용할 때는 효율성이 떨어지지는 않지만 technical interview에서 면접관이 method를 사용하지 말라고 요구할 경우를 대비해서 연습하시는게 좋을 것 같아요. 그리고 위에서 assign된 variable들은 변하지 않기 때문에 const 또는 var 로 하시는게 괜찮을것 같습니다. ^^

function mySolution(arr) {
  let sum = 0;
  const filter = arr.reduce((oddNumbers, number) => {
    if (number % 2 === 1) {
      oddNumbers.push(number);
      sum += number;
    }
    return oddNumbers;
  }, []);
  const sumUp = filter.reduce((prev, curr) => prev + curr);
  filteredArr = filter.sort((a, b) => a - b);
  console.log(`The array is ${filter}`);
  console.log(`Sum of all odd numbers is ${sumUp}`);
  console.log(`The smallest odd number is ${filteredArr[0]}`);
}

mySolution([12, 77, 38, 41, 53, 92, 85]);

continue를 사용하는 이유

0

79

2

정렬 가능 여부 판단하기

0

64

2

알고리즘 학습법 관련해서 질문드립니다.

0

85

1

코드 리뷰 부탁드립니다!

0

90

1

indexOf를 사용해서 풀어보았습니다 !!

0

68

1

저는 이런식으로 구현 해보았습니다 !!

0

64

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

99

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

63

1

영상 보기 전에 직접 풀어봤습니다.

0

74

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

133

2

정규표현식으로 처리해도 상관없나요 ?

0

120

2

3칸씩 건너뛸 수 있을 경우

0

125

2

강의에 대해 질문있습니다.

0

135

2

Object와 Set을 이용해 풀어봤습니다.

0

117

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

145

2

이렇게 풀어도 괜찮을까요?

0

138

1

이렇게 풀어도 괜찮을까요?

0

112

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

130

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

133

1

투포인트알고리즘으로 풀어봤습니다.

0

142

0

코드 리뷰 부탁드립니다.

0

119

1

코드 맞게 작성한 거 아닌가여??

0

146

1