숫자배열_문제.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// ⭐문제
// 나누어 떨어지는 숫자 배열
// (문제 설명)
// array의 각 element중 divisor로 나누어 떨어지는 값을
// 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
// divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환
// arr - [5, 9, 7, 10] [2, 36, 1, 3] [3, 2, 6]
// diviso - 5 1 10
// return - [5, 10] [2, 36, 1, 3] [-1]
// (me)
// let arr4 = [5, 9, 7, 10];
// let result4 = arr4.filter(arr4 => arr4%5===0);
// console.log(result4);
// let arr5 = [2, 36, 1, 3];
// let result5 = arr5.filter(arr5 => arr5%1===0);
// console.log(result5);
// let arr6 = [3, 2, 6];
// let result6 = arr6.filter(arr6 => arr6%10===0);
// console.log(result6);
function solution(arr, divisor) {
let answer = []; // 아무것도 없으면 빈배열,
// arr배열 요소중 divisor로 나누었을 때 나머지가 0이되는 요소는
// answer에 넣기
// 1) answer.push()
// 2) filter를 사용하여 해당 배열을 answer에 할당
// (1)
// arr.forEach(val => {
// if (val % divisor == 0) answer.push(val); // 해당하면 넣어주기
// })
// (2)
answer = arr.filter (val => val % divisor === 0)
answer = answer.length == 0 ? [-1] : answer;
return answer;
}
console.log(solution([5,9,7,10],10));
let arr2 = [1,2,3,4];
arr2.forEach( (a,b,c) => {
console.log(a); // 1, 2, 3, 4
console.log(b); // 0, 1, 2, 3
console.log(c); // [1,2,3,4]
})
</script>
</body>
</html>
p와y의개수.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h3>왜 안돼 ?</h3>
<script>
// ⭐문제
// 문자열 내 p와 y의 개수
// (문제 설명)
// 대문자와 소문자가 섞여있는 문자열 s
// s에 p의 개수와 y의 개수를 배교해 같으면 true, 다르면 false를 return하는 solution 완성
// p 와 y 모두 하나도 없는 경우 항상 true를 리턴
// 단, 개수를 비교할 때 대문자와 소문자를 구별하지 않음
// (예)
// s가 pPoooyY → true, Pyy → false
// (제한사항)
// 문자열 s의 길이 : 50이하의 자연수
// 문자열 s는 알파벳으로만 이루어짐
// 문자열을 받아서 p의 개수가 몇개인지 ? y의 개수가 몇개인지 ?
// 개수를 비교해서 일치하면 true, 아니면 false 반환
// 비교구문) 대.소문자 비교 ★ → 전체를 대or소로 바꾸기
// (1)
function solution(s) {
// (me)
// let answer = '';
// answer = s.filter()
// answer = s == p && P && y && Y ? true : false;
// return answer;
// if (answer == p && P && y && Y) {
// }
let answer = true; // 기본 true
s = s.toUpperCase().split(''); // 전체를 대문자로 바꾸기 , 배열로 바꾸기
// ['P', 'P', 'A', 'B', 'S', 'D', 'G', 'Y', 'Y']
let parr = s.filter(str => str === 'P').length; // P, Y 일치하는 것만 return
let yarr = s.filter(str => str === 'Y').length; // (2) ['P', 'P'] (2) ['Y', 'Y']
// .length는 필터한 길이의 길이 // 2 2
answer = parr === yarr ? true : false;
// console.log(parr, yarr);
return answer;
}
let result = solution('pPY');
console.log(result); // true or false 출력
// (2)
function solution2(s) {
let answer2 = true;
let pnum = 0, ynum = 0; // 변수 만들기 // 여러개 만들때 (,) 사용하면됨
s = s.toUpperCase(); // 대문자
// for ~ of 문
for (let i of s) {
pnum = i === 'P' ? pnum + 1 : pnum;
ynum = i === 'Y' ? ynum + 1 : ynum;
}
answer2 = pnum == ynum;
return answer2;
}
let result2 = solution2('PY');
console.log(result2);
</script>
</body>
</html>