가수면

[Javascript] 소수의 개수와 덧셈 본문

CS/코딩 테스트

[Javascript] 소수의 개수와 덧셈

니비앙 2022. 11. 23. 15:40

문제 설명

문자열 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