Wii Pointer #1 Tilt Normal
본문 바로가기
📂 𝐚𝐥𝐠𝐨𝐫𝐢𝐭𝐡𝐦/항해 코테 모의고사

[알고리즘] 모의고사 3번 소수의 개수와 덧셈 (상)

by 개발자_후니 2023. 1. 31.
728x90
반응형

문제 설명

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 소수의 최대값과 소수가 아닌 수의 최소값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "2 3 4 5"라면 "4 5"를 리턴하고, "15 3 10 9 7 8"라면 "8 7"을 리턴하면 됩니다.


제한사항

  • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
  • 문자열에는 소수가 한개 이상 섞여 있습니다.
  • 문자열에는 소수가 아닌 수가 한개 이상 섞여 있습니다.
  • 음수는 없습니다.


  • 아래 답안 포맷을 참고하여 답안을 작성해주시기 바랍니다.
    • JavaScript 답안 포맷
    •  
function solution(s){
	let answer="";
	return answer;
}
let s="97 75 88 99 95 92 73";

console.log(solution(s))


내가 작성한 코드

function solution(s){
	let answer = "";
    let numbers = s.split(" ").sort((a,b)=>a-b);

    // 소수가 아닌 최솟값 +=하기

    for(let i = 0; i < numbers.length; i++){
        if (!isPrime(numbers[i])){
            answer += numbers[i]
            break;
        }
    }

    

    // 소수인 최대값 += 하기
    numbers.reverse()
    for(let i = 0; i <numbers.length; i++){
       if (isPrime(numbers[i])){
            answer += ' ' + numbers[i]
            break;
       }
    }
    return answer;
}

function isPrime(num) {
    // 소수는 1과 자기 자신만으로만 나누어 떨어지는 수 임으로
    // num > i
    for(let i = 2; num > i; i++) {
    if(num % i === 0) { //이 부분에서 num이  다른 수로 나눠떨어진다면 소수가 아님
      return false;
     }
    }
   // 소수는 1보다 큰 정수임으로
   // 1보다 작으면 false를 리턴한다
   return num > 1;
  
}

let s="97 75 88 99 95 92 73";

console.log(solution(s))
728x90
반응형