자바스크립트 Lv 0
1.두수의차
이문제를 풀려면 사칙연산에 대해 알아야함(이해도100%)
function solution(num1, num2) { var answer = num1-num2; return answer; }
2. 몫구하기
이문제를 풀려면 Math에 대해 알아야함.M은 반드시 대문자로
Math.floor() : 소수점 이하를 버림한다.
Math.ceil() : 소수점 이하를 올림한다.
Math.round() : 소수점 이하를 반올림한다.
function solution(num1, num2) { const answer = Math.floor(num1 / num2); return answer; }
3. 두 수 의 나눗셈
function solution(num1, num2) { var answer = Math.floor(num1/num2*1000) return answer; }
4. 숫자비교하기
이문제를 풀려면 조건문 if,else를 알아야함
function solution(num1, num2) { var answer = 0; if(num1===num2){ answer = 1; }else { answer = -1 } return answer; }
4.나머지구하기
이문제를 풀려면 사칙연산 중 %에대해 알아야함
function solution(num1, num2) { var answer = num1%num2; return answer; }
5. 두수의 곱
이문제를 풀려면 사칙연산중 *에대해 알아야함
function solution(num1, num2) { var answer = num1*num2; return answer; }
6.두수의 합
이문제를 풀려면 사칙연산중 +에대해 알아야함
function solution(num1, num2) { var answer = num1+num2; return answer; }
7. 짝수의 합
이문제를 풀려면 조건문, 반복문에 대해 알아야함 (이문제는 이해도 30%)
function solution(n) { var answer = 0; for(i=0; i<=n; i++){ if(i%2===0){ answer+=i; } } return answer; }
8. 두수의 나눗셈
function solution(num1, num2) { var answer = Math.floor(num1/num2 * 1000); return answer; } // 1.num1과 num2를 나눈다. // 2.나눈값에 *1000을한다 // 3.그값을 정수로만 뽑는다(Math.floor 말고도 parseInt도 있음)
9. 분수의 덧셈
function solution(denum1, num1, denum2, num2) { var answer = []; // 분수통분하기 const denum = num2*denum1+num1*denum2 // 분자의값 구하기 const num = num1*num2 //분모의값 구하기 let minnumber; //작은수를 담을 변수를 하나 만들어줌 if(denum<num){ minnumber=denum; }else{ minnumber=num; } while(true){ // while문을 쓰는 이유는 조건이 만족하는동안에 계속 반복함 if문은 조건이 만족하면 그냥끝임 if(denum % minnumber===0){ //작은수를 나눴을때 0이되면 최대공약수인것임 if(num % minnumber===0){ //if문안에 if문을 넣음 return[denum / minnumber, num/minnumber] } } minnumber = minnumber -1; } } // 1.분모덧셈 // 2.분자분모의 최대공약수로 나눠줌 // 2-1.분자분모중 작은 수를 찾기 // 2-2.작은수를 분자분모로 나눠보기 // 2-2-1.둘다 나눠 떨어지면 그게 최대공약수임 >> 조건문 ~~하면 // 2-2-2.안 나눠떨어지면 작은수를 1줄이고 2-2로 돌아가서 다시반복함 >> while 반복문을 사용g
10. 배열 두배만들기
function solution(numbers) { var answer = []; let cnt=0; // 변수를 하나만들어주고 while(cnt<numbers.length){ //배열의 길이만큼 answer.push(numbers[cnt]*2); //*2를해서 push해서 다시 배열에 넣어야함 cnt=cnt+1; } return answer; } // 1.배열안에 있는 원소의 갯수가 다르다. // 2.배열의 길이만큼에 *2를 해야한다.
map을 사용해서 배열 두배만들기
function solution(numbers) { return numbers.map((num)=>num*2) }
11. 나머지구하기
function solution(num1, num2) { var answer = num1%num2; return answer; }
12. 중앙값구하기
function solution(array) { ///1-4. 반복문의 길이만큼 반복한다 let arraycnt =0; let newarray=[]; // 새배열을 하나 만들어줌 while(arraycnt < array.length){ let mini=1000; // 0이라고 하지않은이유는 최대값 1000과 배열들을 비교할것 // 1-1. 배열에서 최소값을 찾는방법 let cnt = 0; //array의 배열음 담을 cnt라는 변수를 만들어준다. while(cnt < array.length) { if(mini > array[cnt]) { //mini가 배열의 담긴값보다 크면 최소값이 아니라는 소리(true)니까 아래를 실행한다. mini = array[cnt]; //그 최솟값이 mini이다. } cnt = cnt + 1; //cnt는 배열의 길이를 담을 변수기때문에 0부터 계속 +1씩 증가되야함. } // 1-2새 배열에 넣는방법. newarray.push(mini); //새로만든 배열에 최소값을 넣어줌 // 1-3 기존배열에 있는 값을 지우는방법 let cnt2 = 0; //cnt2라는 새로운 변수를 만들어줌 while(cnt2 < array.length) { if(mini === array[cnt2]) { //최소값이랑 원소가 같으면 array[cnt2] = 1000; //최소값이 최대값인 1000이 된다.라고 하고 break를 해서 코드를 빠져나온다. break; } cnt2 = cnt2 + 1 } /* if(1000>9[0]){ //array의 0번째값인 9와 1000을비교 했을때 이게 true면 아래값을 실행함. mini=9[0] //1000이 9보다 크니까 9는 mini가된다. } if(9>-1[1]){ //mini가 된 9가 array의 1번째값인 -1보다 큰게 true니까 아래값을 실행함 mini=-1[1] //mini는 -1이된다. } if(-1>0[2]){ //mini가 된-1이 array의 2번재값인 2보다 크지않으니 false니까 아랫값을 실행못함. mini=-1[2] //if문은 실행되지않고 minis는 -1이 된다. } */ arraycnt = arraycnt + 1; } return newarray[Math.floor(array.length / 2)]; } /* 1.배열 정리하기 1-1.배열중 작은값을찾아라 1-2.찾으면 새로운 배열에 넣어라 1-3.기존에 배열에서 지운대 1-4.배열의 길이만큼 반복한후 끝낸다 아니면 1.1로 돌아간다 1-5.반복한다. 2.가운데값 꺼내기 2-1.가운데값 꺼내는건 배열의 길이를 2로나누면됨. 그후 math.floor를하면 뒤에 소수점은 날라감. */
13. 최반값 구하기
function solution(array) { let sotearray = array.sort((a,b)=>a-b); var answer = 0; let cnt =0; let choi =-1 // 최빈값을 choi라고 변수를 준후 나올수없는값 -1을 부여함 let choirepeatcnt = 0; // 최빈값이 될때 몇번반복해서 된건지 let repeatcnt=0; // 현재 똑같은 숫자가 몇번 나왔는지 let befornumber =-1 // 이전숫자 let isdupchoi=false; while(cnt<array.length){ if(befornumber !== array[cnt]){ repeatcnt = 1; }else{ repeatcnt = repeatcnt+1; } if(repeatcnt ===choirepeatcnt){ if(choi !== array[cnt]){ isdupchoi = true; } } if(repeatcnt>choirepeatcnt){ choi = array[cnt]; choirepeatcnt=repeatcnt; isdupchoi=false; } befornumber=array[cnt]; cnt=cnt+1; } if(isdupchoi) return-1; return choi; } // 1. 앞에서부터 차례대로 원소를 확인하며 갯수를 샌다 // 2. 최반값을 그때그때 기록한다.
14. 짝수는 싫어요
function solution(n) { var answer = []; let cnt= 1; while(cnt<=n){ if(cnt%2==1){ answer.push(cnt); } cnt=cnt+1; } return answer; }
15. 나이출력
문제설명
- 머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. 나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요.
제한사항
- 0 < age ≤ 120 / 나이는 태어난 연도에 1살이며 1년마다 1씩 증가합니다.
문제풀이
2022년에서 나이를빼고 +1를 해줌
function solution(age) { var answer = 2022 - age + 1; return answer; }
16. 아이스 아메리카노
문제설명
- 머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < money ≤ 1,000,000
문제풀이
function solution(money) { const coffe = 5500 const glass = Math.floor(money/coffe) const wksehs=money%coffe var answer = [glass,wksehs]; return answer; }
17. 배열 원소의길이
문제설명
- 문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ strlist 원소의 길이 ≤ 100
- strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.
문제풀이
function solution(strlist) { var answer = []; for(let i=0; i<strlist.length ; i++){ answer.push(strlist[i].length) } return answer; }
18. 배열뒤집기
문제설명
- 정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ num_list의 길이 ≤ 1,000
0 ≤ num_list의 원소 ≤ 1,000문제풀이
- reverse를 이용해서 배열을 뒤집음
function solution(num_list) { const List = num_list.reverse() var answer = List return answer; }
19. 짝수 홀수 개수
문제설명
- 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 ≤ num_list의 길이 ≤ 100
0 ≤ num_list의 원소 ≤ 1,000문제풀이
- 전체리스트에서 짝수의 숫자만 걸러서 다른변수에 push하고
- 전체리스트의 숫자에서 짝수리스트의 숫자를 빼면 나머지는 홀수리스트만 남게됨
function solution(num_list) { let answer2=[]; let answer = []; for(let i=0; i<num_list.length; i++){ if(num_list[i]%2===0){ answer2.push(i) } } answer=[answer2.length, num_list.length-answer2.length] return answer; }
20. 문자열 뒤집기
문제설명
- 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
문제풀이
- split("")으로 문자열의 문자들을 1개씩 분리해서 배열을 만들어주고, reverse()로 배열을 역순으로 변경하고 , join("")으로 다시 합쳐줌
function solution(my_string) { let string = my_string.split("").reverse().join("") var answer = string; return answer; }