개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (287)
    • Web Front End (76)
      • Javascript & Typescript (26)
      • React (12)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (8)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 프론트엔드
  • 오늘의회고
  • 개발자
  • 자바스크립트
  • 노개북
  • TypeScript
  • 릿코드
  • 회고
  • 노마드북클럽
  • JavaScript

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이

개발후라이

Problem Solved/BOJ

[BOJ][Java] 11653번 - 소인수분해

2020. 2. 5. 17:28
반응형

문제

백준 11653번 문제: 소인수분해

문제 설명

소인수분해를 배우는 문제
정수 N이 주어졌을 때, 소인수분해하는 문제

말 그대로 소인수분해를 하는 문제이다.
나는 반복문을 안쓰고 싶었어서 재귀함수를 사용해 풀었다.
소인수분해를 해야 하는 수가 A라고 하면 A가 1이 되어 더 이상 나눌 수가 없을 때까지 재귀함수가 돌고 그 안에서는 A를 2부터 시작해서 1씩 커지도록 하는 숫자를 나눠 가며 소인수를 구해 나갔다.
재귀함수를 쓰면서 스택오버플로우 에러가 많이 나서 조심히 써야 할 것 같다.

성공 코드

import java.util.Scanner;

public class Main {
    static int i = 2;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.close();
        StringBuilder sb = new StringBuilder();

        System.out.println(getFactorization(n, sb));
    }

    public static String getFactorization(int n, StringBuilder sb) {

        if (n == 1) return (sb.toString());

        if (n % i == 0) {
            n /= i;
            sb.append(i + "\n");
        }
        else {
            i++;
        }

        return getFactorization(n, sb);
    }

}
반응형
저작자표시 (새창열림)
    'Problem Solved/BOJ' 카테고리의 다른 글
    • [BOJ][Java] 2981번 - 검문
    • [BOJ][Java] 2609번 - 최대공약수와 최대공배수
    • [BOJ][Java] 1037번 - 약수
    • [BOJ][Javascript/nodejs] 1991번 - 트리 순회
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바