728x90
1. 짝수와 홀수
function solution(num) {
var answer = '';
num%2 ==0 ? answer = 'Even': answer = "Odd"
return answer;
}
2. 작은수 제거하기
function solution(arr) {
var answer = arr;
let i = Math.min(...answer) // 작은수 값 탐색
let a = answer.indexOf(i) // 작은수 index위치 탐색
answer.splice(a,1) // 작은수 제거
return answer.length===0 ? [-1] : answer; // 빈배열이거나 10만들어있을시 -1 리턴
}
3. 최대공약수, 최소공배수
function solution(n,m){
let answer = [];
// 최대공약수 구하기
// 두수중 작은수만큼 반복하기
// 두수를 1부터 작은수까지 나머지 연산을 했을때
// 둘다 0이 되는 가장 큰수
for(let i=1; i<=Math.min(m,n); i++){
if(n % i == 0 && m % i == 0){
answer[0] = i
}
}
// 최소공배수 구하기
// n으로 나누었을때 나머지가 0이되고,
// m으로 나누었을때 나머지가 0이되는 수중
// 가장 작은수
let lcm = 1;
while(true){
if(lcm%n===0 && lcm%m===0){
break;
}
lcm++;
}
answer[1] = lcm
return answer;
}
4. 콜라츠 추측
function solution(num) {
var answer = 0;
let i = 0;
if(num==1){ // 나머지가 1이되면 종료한다.
answer = 1;
return answer;
}
while(true){
if(num%2 == 0){ // 짝수라면 2로 나눈다.
num = num/2
i++;
}else { num = (num*3+1); // 홀수라면 3을 곱하고 1을 더한다
i++;
num = num/2;
i++;
}
if(num==1){
answer = i;
return answer;
}
if(i==500){answer=-1; return answer;} // 반복횟수가 500회가 되면 -1을 리턴한다.
}
}
5.평균구하기
function solution(arr) {
var answer = 0;
let sum = arr.reduce((a,b)=>{
return a + b})
answer = sum/arr.length
return answer;
}
6. 하샤드수
function solution(x){
let answer = true;// 문자열을 형변환 -> 배열로 변환 [1,0] [1,2]
let sum = String(x).split("").reduce((pre,cur)=>{ // 배열의 합을 구하기(reduce) 초기값 0으로.
return Number(pre)+Number(cur);
},0);
answer = x%sum==0 ? true : false;
return answer;// 합을 그대로 나눳을때 나머지가 0 이면 true 아니면 false를 리턴
}
7. 핸드폰번호 *로 바꾸기
function solution(phone_number){
let answer ='';
for(let i=0; i<phone_number.length; i++){ // 폰넘버의 길이만큼 반복
answer += i<phone_number.length-4 ? "*" : phone_number.charAt(i); // 마지막 4개를 제외한 번호에 *을 삽입
}
return answer;
}
8. 행렬의 덧셈
function solution(arr1,arr2){
let answer = [];
// 배열을 돌면서 값을 더한 결과를 answer배열에 삽입
arr1.forEach((row,rowIndex)=>{
answer.push(row.map((col,colIndex)=>col+arr2[rowIndex][colIndex]));
})
return answer;
}
9. x간격만큼 있는 n개의 숫자
function solution(x,y){
let answer = [];
for(let i=1; i<=y; i++){
answer.push(x*i);
}
return answer;
}
10. 정수제곱근 판별
function solution(n){
let answer = 0;
// 어떤수의 제곱근을 구한다.
// 구한 제곱근이 정수면 값+1 의 제곱을 리턴
// 구한 제곱근이 정수가 아니면 -1을 리턴
answer = Math.sqrt(n)%1 ==0 ? (Math.sqrt(n)+1)**2 : -1;
return answer;
}
728x90
'프론트앤드 수업' 카테고리의 다른 글
[javascript] 빵먹는 고양이만들기... (0) | 2022.06.17 |
---|---|
[javascript] 비동기적 처리 (0) | 2022.06.17 |
[github] 설치,사용,다른사람깃허브 가져오기 (0) | 2022.06.14 |
[Mysql] 데이터베이스 복사,백업,이동[테이블 포함] (0) | 2022.06.13 |
[php,mysql] 연동 게시물이미지 삭제, 수정[파일삭제까지] (0) | 2022.06.03 |