페블_
반짝이는 시냅스
페블_
전체 방문자
오늘
어제
  • 전체글 보기 (96)
    • QA (0)
    • 프로젝트 회고 (4)
    • 프로젝트 과정 기록 (12)
    • UI 구현 연구일지 (8)
    • Front-end (31)
      • Javascript (7)
      • CSS (10)
      • React (5)
      • Typescript (3)
      • Nextjs (3)
      • 스타일링 라이브러리 (3)
    • Back-end (0)
      • Express (0)
      • DB (0)
    • CS (0)
      • 자료구조 & 알고리즘 (0)
    • CI&CD (1)
    • 툴 사용법 (4)
      • Git (1)
      • Library&패키지 (2)
      • 기타 개발관련 (1)
    • 알고리즘 이론 & 풀이 (36)
      • 백준(BOJ) (14)
      • 프로그래머스 (22)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Python
  • 파이썬
  • 캐러셀
  • TypeScript
  • react
  • 선형대수학
  • JS
  • chartjs
  • emotion
  • eslint
  • 알고리즘
  • 개발블로그_시작
  • 백준
  • storybook
  • UI 컴포넌트
  • 생각
  • 토이프로젝트
  • 시리즈_표지

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
페블_

반짝이는 시냅스

알고리즘 이론 & 풀이/프로그래머스

프로그래머스 Lv.0 | 소인수분해

2023. 7. 19. 02:16

https://school.programmers.co.kr/learn/courses/30/lessons/120852

 

 

💻 코드

  1. 12는 2, 2, 3으로 소인수분해 된다는 것을 생각해보자. while문을 통해 i=2부터 시작해 수를 i로 나눠보는 것을 반복한다.
  2. 더 이상 나누어 떨어지지 않으면 2로 인수분해할 것이 떨어졌다는 뜻이므로 i++ 해서 다음 수로 계속 나누는 식으로 반복한다.
  3. 중간에 if문으로 이미 소인수로 배열에 등록된 수가 들어가지 않도록 검사해준다. (혹은 그냥 if문 없이 계속 answer.push(i)를 하고, 마지막 결과 반환 부분에서 return [...new Set(answer)]를 해도 된다.
function solution(n) {
    const answer = [];
    let i = 2;
    while(n > 1) {
        if(n % i === 0) {
            if(!answer.includes(i)) answer.push(i);
            n /= i;
        } else {
            i++;
        }
    }
    return answer;
}

'알고리즘 이론 & 풀이 > 프로그래머스' 카테고리의 다른 글

프로그래머스 Lv.1 | 폰켓몬 js  (0) 2023.08.08
프로그래머스 Lv.0 | 영어가 싫어요 js  (0) 2023.08.06
프로그래머스 Lv.0 | 이진수 더하기  (0) 2023.07.09
프로그래머스 Lv.0 | 문자열 계산하기  (0) 2023.07.08
프로그래머스 Lv.0 | 공던지기  (0) 2023.07.08
    '알고리즘 이론 & 풀이/프로그래머스' 카테고리의 다른 글
    • 프로그래머스 Lv.1 | 폰켓몬 js
    • 프로그래머스 Lv.0 | 영어가 싫어요 js
    • 프로그래머스 Lv.0 | 이진수 더하기
    • 프로그래머스 Lv.0 | 문자열 계산하기
    페블_
    페블_

    티스토리툴바