TIL15-03 Set, add, size

김태혁·2023년 1월 26일
0

TIL

목록 보기
49/205
  • 문제 설명
    약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.
  • 풀이 과정
  1. n이하의 수를 1,과 n 자신을 제외한 수로
    나눴을 때 나머지가 0이면 합성수이다.
  2. 이를 확인하기 위해 중첩반복문을 활용한다.
  3. 이 과정에서 n 이하의 수를 확인하고 나눴을 때 중복 값이 나오고, 배열을 순회하려니 도저히 답이 나오지 않았다.
  4. 구글링 결과 Set을 활용하면 손쉽게 풀이할 수 있음을 알 수 있었다.
  5. Set 은 받은 인자를 중복없는 객체로 만들어준다.
  6. add를 활용하여 Set에 값을 넣어준다.
  7. 합성수의 개수를 구하는 문제이므로 객체의 size를 구하면 된다.
function solution(n) {
    let answer = new Set(); //Set은 중복 없는 객체로 만들어준다.
    for (let i = 1; i <= n; i++) { 
        for(let j = 2; j < i; j++) { // 1과 n자신으로 나누지 않고 나머지 수와의 나누기에서 나머지가 0인 i 값
            if ( i%j === 0) {
                answer.add(i); // i값을 answer 객체에 넣어준다.
            }
        }
    }
    return answer.size; // 개수를 구하는 문제이므로 객체의 size를 반환한다.
}
profile
도전을 즐기는 자

0개의 댓글