728x90
반응형
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 소수의 최대값과 소수가 아닌 수의 최소값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "2 3 4 5"라면 "4 5"를 리턴하고, "15 3 10 9 7 8"라면 "8 7"을 리턴하면 됩니다.
제한사항
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
- 문자열에는 소수가 한개 이상 섞여 있습니다.
- 문자열에는 소수가 아닌 수가 한개 이상 섞여 있습니다.
- 음수는 없습니다.
![](https://blog.kakaocdn.net/dn/bAKIX5/btrXFvpnVjH/tvq1D2eYsFq93MBgB3Kn3k/img.png)
- 아래 답안 포맷을 참고하여 답안을 작성해주시기 바랍니다.
- 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
반응형
'📂 𝐚𝐥𝐠𝐨𝐫𝐢𝐭𝐡𝐦 > 항해 코테 모의고사' 카테고리의 다른 글
[알고리즘] 모의고사 2번 몇시간 했더라? (중) (0) | 2023.01.31 |
---|---|
[알고리즘] 모의고사 1번 신대륙 발견 (0) | 2023.01.31 |