가수면
[Javascript] 소수의 개수와 덧셈 본문
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 소수의 최대값과 소수가 아닌 수의 최소값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "2 3 4 5"라면 "4 5"를 리턴하고, "15 3 10 9 7 8"라면 "8 7"을 리턴하면 됩니다.
제한사항
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
- 문자열에는 소수가 한개 이상 섞여 있습니다.
- 문자열에는 소수가 아닌 수가 한개 이상 섞여 있습니다.
- 음수는 없습니다.
내가 쓴 코드
function isPrime(num) {
# 소수는 1과 자기 자신만으로만 나누어 떨어지는 수 임으로
# i < num
for(let i = 2; i < num; i++) {
if(num % i === 0) { # 이 부분에서 num이 다른 수로 나눠떨어진다면 소수가 아님
return false;
}
}
# 소수는 1보다 큰 정수임으로
# 1보다 작으면 false를 리턴한다
return num > 1;
}
function solution(s){
let answer=[];
let num = s.split(' ')
let sosu = []
let sosuX = []
for (let i = 0; i < num.length; i++) {
isPrime(num[i]) === true ? sosu.push(num[i]) : sosuX.push(num[i])
}
answer.push(sosuX.sort((a, b) => a - b)[0])
answer.push(sosu.sort((a, b) => b - a)[0])
return answer.join(' ')
}
let k = "2 3 4 5"
let b = "15 3 10 9 7 8"
let s = "97 75 88 99 95 92 73";
console.log(solution(k))
console.log(solution(b))
console.log(solution(s))
'CS > 코딩 테스트' 카테고리의 다른 글
[Javascript] 3진법 뒤집기 (0) | 2022.11.23 |
---|---|
[Javascript] 몇시간 했더라? (0) | 2022.11.23 |
[Javascript] 하샤드 수 (1) | 2022.11.23 |
[Javascript] 콜라츠 추측 (0) | 2022.11.23 |
[Javascript] 제일 작은 수 제거하기 (0) | 2022.11.23 |
Comments