일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 구현
- DP
- web
- 파이썬
- 딕셔너리
- 문자열
- BFS
- 그리디 알고리즘
- 웹 프론트엔드
- 그래프이론
- 알고리즘
- 너비 우선 탐색
- level2
- 브루트포스 알고리즘
- 프로그래머스
- 다이나믹 프로그래밍
- 스택
- BASIC
- 그래프 이론
- 자료구조
- 프로그래머스스쿨
- 자바스크립트
- 정렬
- lv2
- 백준
- DFS
- CSS
- JavaScript
- programmers
- 그래프 탐색
Archives
- Today
- Total
DevLog:-)
[프로그래머스][Javascript]소수찾기 본문
반응형
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
function solution(numbers) {
var answer = 0;
let set = new Set();
let visited = Array(numbers.length).fill(0);
let Num = Array.from(numbers);
Num =Num.map((e)=>parseInt(e)) //문자열-> 숫자 배열로 변환
function check(n){
let k = n>4 ? n/2 : n;
for(let i =2 ;i<k ;i++){
if(n%i ==0){return 0;}
}
if(n ==1 ||n==0){return 0;}
return 1;
}
function dfs(num,y){
if(!set.has(num)){
if(check(num)){
answer++;}
set.add(num);}
for(let i in Num){
if(visited[i]==0){
visited[i] =1;
dfs(num+(y*10)*Num[i],y*10);
visited[i] =0;
}
}
return;
}
for(let i in Num){
visited[i] = 1;
dfs(Num[i],1);
visited[i] = 0;
}
return answer;
}
✅checkpoint!
Math.sqrt(9) //3 | -숫자의 제곱근을 반환 -소수 판별시 사용 가능 |
1.arr = Array.from(str); 2.arr = str.split(''); |
-문자열로 배열로 만들기 |
parsInt('2'); Number('2'); |
-문자 숫자로 변환하기 |
💡idea요약
2개의 함수 구현 | 1.소수 판별함수 구현 2.주어진 numbers문자열에서 가능한 숫자 조합을 모두 순회하기 위해 dfs함수 구현 숫자 중복 check를 방지하기 위해 고유한 값을 다루는 set 자료구조 이용 |
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Javascript]멀리뛰기 (0) | 2023.08.04 |
---|---|
[프로그래머스][Javascript]타겟 넘버 (0) | 2023.08.01 |
[프로그래머스][Javascript]기능개발 (0) | 2023.07.29 |
[프로그래머스][Javascript]피로도 (0) | 2023.07.28 |
뒤에 있는 큰 수 찾기 (0) | 2023.07.27 |