Lv 2. 소수찾기

2024. 7. 30. 22:31·Algorithm & Data Structures/Programers
목차
  1. 코드 흐름

 

코드 흐름

  • DFS로 순열을 만들어 하나하나 의 가짓수를 만드는 DFS 함수
  • 하나하나의 가짓수가 나올때마다 소수인지 체크하는 check 함수를 만들어 풀이하였다.
  • 소수판별은 가장 효과적인 n의 제곱근까지 반복문을 돌려 확인하였고
  • 시간복잡도를 위해 가짓수의 중복판별은 Set 을 이용하였다.
import java.util.*;
class Solution {
    Set<Integer> isVisited;
    int answer;
    boolean[] numbersVisited;
    public void DFS(int n, int s, String numbers){
        if(n>=0 && !isVisited.contains(s)){
            if(check(s))
                answer++;
            isVisited.add(s);
        }
        for(int i = 0 ; i < numbers.length() ; i++)
            if(!numbersVisited[i])
            {
                numbersVisited[i]=true;
                DFS(n-1,(s*10)+numbers.charAt(i)-'0',numbers);
                numbersVisited[i]=false;
            }
    }
    public int solution(String numbers) {
        answer = 0;
        isVisited = new HashSet<>();
        numbersVisited = new boolean[numbers.length()];
        DFS(numbers.length(), 0 ,numbers);
        return answer;
    }
    public boolean check(int num){
        if (num < 2) {
            return false;
        }
        for(int i = 2 ; i <= Math.sqrt(num) ; i++){
            if(num%i==0)
                return false;
        }
        return true;
    }
}

'Algorithm & Data Structures > Programers' 카테고리의 다른 글

Lv 2. 두 큐 합 같게 만들기  (1) 2024.08.02
Lv 2. 삼각달팽이  (1) 2024.07.31
Lv 2. 쿼드압축 후 갯수 세기  (0) 2024.07.29
Lv 2. 가장 큰 수  (2) 2024.07.26
Lv 2. 방문길이  (0) 2024.07.25
  1. 코드 흐름
'Algorithm & Data Structures/Programers' 카테고리의 다른 글
  • Lv 2. 두 큐 합 같게 만들기
  • Lv 2. 삼각달팽이
  • Lv 2. 쿼드압축 후 갯수 세기
  • Lv 2. 가장 큰 수
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (339) N
      • Algorithm & Data Structures (257) N
        • BOJ (115) N
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (29)
        • SQL (23)
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    dp
    자바
    Union-Find
    후위순회
    baekjoon
    알고리즘
    dfs
    DynamicProgramming
    백트래킹
    이분탐색
    투포인터
    PriorityQueue
    다이나믹 프로그래밍
    유니온파인드
    BFS
    구현
    동적계획법
    SQL
    골드
    프로그래머스
    Stack
    Java
    스택
    algorithm
    Dijkstra
    다익스트라
    백준
    programmers
    경로압축
    binarySearch
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
Lv 2. 소수찾기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.