function solution(n){
let result = ""
let tempArr = Array.from(String(n), Number).reverse()
// 임시 array 만들어 입력받은 n을 items로 만들어준 뒤 reverse로 뒤집는다.
let sum = tempArr.reduce((a, b) => a + b, 0)
// tempArr의 items값의 합은 reduce를 통해 구해준다.
for (let i = 0; i < tempArr.length; i++){
//이후 글자를 꾸미기 위해 요소 별 for 반복문을 돌려준다.
if(i === tempArr.length-1){
//마지막 글자는 이퀄 기호(=)를 붙여줘야 하기 때문에 오른쪽에 sum 값과 붙여준다.
result += tempArr[i] + "=" + sum
}else{
result += tempArr[i] + "+"
//이후 아닌 나머지 값들은 +를 오른쪽에 붙여준다.
}
}
result = '"' + result + '"'
// 마지막으로 ""(쌍따옴표)가 같이 나오므로 저장해준다.
return result
}
function solution(arr1, arr2){
let answer = 0;
for(let i=0; i<arr1.length; i++){
// for 반복문으로 먼저 items 해체 확인
if(arr2[i] > 29){
// 새벽 5시가 넘으면(24 + 5)
arr2[i] = 21
// 21시 체크아웃으로 초기화
}
answer += arr2[i] - arr1[i];
// 빼기로 확인
}
return answer;
}
let arr1 = [9,9,9,9,7,9,8]
let arr2 = [23,23,30,28,30,23,23]
console.log(solution(arr1, arr2))
function solution(s) {
let answer = "";
let tempArr = s.split(" ").map(Number)
// 띄어쓰기를 빼며 문자로 치환 후 다시 숫자로 매핑해서 array로 만든다.
primeArr = tempArr.filter((number) => {
// 필터를 통해 걸러주고, Math.sqrt로 소수인지 아닌지 판별해준다.
for (var i = 2; i <= Math.sqrt(number); i++) {
if (number % i === 0) return false;
// 소수가 아니면 false, 소수면 true 새로운 primeArr로 복사해준다.
}
return true;
});
let maxPrimeNumber = Math.max.apply(Math, primeArr);
console.log(maxPrimeNumber)
// 가장 큰 소수를 구한다. 그러면 큰 값만 나온다.
notPrimeArr = tempArr.filter((number) => {
// 정확히 반대과정이다. 이번엔 소수가 아닌 것을 구한다.
for (var i = 2; i <= Math.sqrt(number); i++) {
if (number % i === 0) return true;
}
return false;
});
let minNotPrimeNumber = Math.min.apply(Math, notPrimeArr);
console.log(minNotPrimeNumber)
// 소수가 아닌 것의 새로운 array가 나오면 작은 값을 반대로 구해준다. 이 때 array 이름 헷갈리지 않게 주의하자.
temp = []
temp.push(maxPrimeNumber, minNotPrimeNumber)
// 임의의 array 만들어줘서 최대값, 최소값을 넣은 뒤
console.log(temp)
answer = temp.join(" ");
// 조인으로 글자화 시켜주고
answer = '"' + answer + '"'
// 인쇄가 "97 75" 이렇게 되도록 바꿔준다.
return answer;
}
let s = "97 75 88 99 95 92 73"
console.log(solution(s))
실제론 하 단계를 풀고 제출하긴 했으나 나머지도 다 풀어봤다. 맞는지는 모르겠으나 여하튼 정리해본다.