Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- python기초
- python자료형
- 스택
- 최단거리
- 참고X
- Git
- c언어 제어문
- 1주차(1)
- 4장
- git 오류
- DP
- 백준
- 그리디
- git오류
- 5장
- 자료구조
- 코테
- python기본
- 운체 1주차
- c언어 기본
- Workbench
- c언어
- 데베시 1주차
- 파이썬 알고리즘 인터뷰
- 도커
- 인텔리제이
- git기초
- 인스타
- #코린이 #코딩 #할 수 있다
- 코딩테스트
Archives
- Today
- Total
하루살이 개발자
[백준] 2023 신기한 소수 (by JAVA) 본문
문제
https://www.acmicpc.net/problem/2023
2023번: 신기한 소수
수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수
www.acmicpc.net
풀이
모든 경우를 탐색하면 무조건 시간초과난다.
소수의 특징을 잘 파악하여 효율적으로 푸는 방법을 생각해 내야 한다.
맨 앞자리 숫자부터 차례로 모두 소수여야 하므로, 맨 앞자리는 소수인 2,3,5,7로 지정하고, 이후 자리수를 하나씩 늘려가며 소수인지 확인하는 방식으로 풀었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Boj_2023_신기한소수 {
static int n;
static void dfs(int num, int index){
if(index == n){ // 백트래킹
// n자리 모두 구하면
if(checkPrime(num)){ // 소수인 경우 출력
System.out.println(num);
}
}
for(int i = 0; i < 10; i++){
if(i % 2 == 0){ // 짝수면 무시,
continue;
}else{
if(checkPrime(num*10 + i)){ // 소수인 경우
dfs((num*10 + i), index +1);
}
}
}
}
public static boolean checkPrime(int num){ // 소수인지 확인
for(int j = 2; j <= num/2; j++){
if(num % j == 0){
return false;
}
}
return true;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine()); // 숫자 자리수
// 7331 = 7, 73, 733, 7331
// 한자리 소수 - 2, 3, 5, 7
// 소수 가능성 - 1, 3, 5, 7, 9 (홀수)
// -> 마지막 자리가 짝수이면 무조건 2로 나누어 떨어짐
int[] targetOne = {2, 3, 5, 7};
for(int i = 0; i < 4; i++) { // 첫번째 자리 수 지정(소수)
dfs(targetOne[i], 1);
}
}
}
'코딩테스트' 카테고리의 다른 글
[SQL 코테] 프로그래머스 Lv.3 문제풀이(by MySQL) (0) | 2023.10.11 |
---|---|
[프로그래머스] Lv2. 숫자 변환하기(by Python) (0) | 2023.05.25 |
[프로그래머스] Lv2. 택배상자(by Python) (0) | 2023.05.25 |
[프로그래머스] Lv2. 두 큐 합 같게 만들기(by Python) - 카카오 2번 문제 (0) | 2023.05.25 |
[프로그래머스] Level4 DP문제(by Python) (0) | 2023.04.15 |