[Programmers]-(JS) 입문 문제 20개 풀기: ~ day2

프로그래머스 입문문제 20개 풀기: JavaScript 사용
 
1. 두 수의 합

function solution(num1, num2) {
    var answer = -1;
    answer = num1 + num2;
    return answer;
}

 
2. 두 수의 차

function solution(num1, num2) {
    var answer = 0;
    answer = num1 - num2;
    return answer;
}

 
3. 두 수의 곱

function solution(num1, num2) {
    var answer = 0;
    answer = num1 * num2;
    return answer;
}

 
4. 몫 구하기

function solution(num1, num2) {
    var answer = 0;
    answer = parseInt(num1 / num2);
    return answer;
}

 
5. 두 수의 나눗셈

function solution(num1, num2) {
    var answer = 0;
    answer = parseInt((num1/num2) * 1000);
    return answer;
}

 
6.  숫자 비교하기

function solution(num1, num2) {
    var answer = 0;
    answer = (num1 == num2)?1:-1;
    
    return answer;
}

 
7. 분수의 덧셈
👉 입문도 못푸는 나는 죽어야겠다 gg
👉 수학 공부를 하자..... 최대 공약수 푸는 일반식(?)이 뭘까....
👉 세현님이 추천해주신 라매 개발자님의 유튜브를 보고 공부해보자....

📌 최대공약수 구하기
1. 분자분모 중 작은 수를 찾기
2. 그 작은 수로 분자분모 나눠보기
3. 둘 다 나누어 떨어지면 그 나눈 수가 최대공약수 (나누어 떨어진다 = %로 0나오기)
4. 안된다면 작은 수에서 -1씩 해가며 찾아보기!
function solution(numer1, denom1, numer2, denom2) {
    var answer = [];
    let top = numer1 * denom2 + numer2 *denom1;
    let bottom = denom1 * denom2;
    
    let minNumber = 0;
    if (top>bottom){
        minNumber = bottom;
    } else {
        minNumber = top;
    };
    
    while(true){
        if(top % minNumber == 0 && bottom % minNumber == 0){
            return [top/minNumber, bottom/minNumber];
        };
        minNumber--;
        };
    
    return answer;
}

 
8. 배열 두 배 만들기

function solution(numbers) {
    var answer = [];
    answer = numbers.map((i)=> i*2);
    return answer;
}

 
9. 나이 출력

function solution(age) {
    var answer = 0;
    answer = 2022 - age + 1;
    return answer;
}

 
10. 나머지 구하기

function solution(num1, num2) {
    var answer = -1;
    answer = num1 % num2;
    return answer;
}

 
11. 각도기

function solution(angle) {
    var answer = 0;
    
    if (angle>0 && angle<90){
        answer= 1;
    }else if(angle == 90){
        answer= 2;
    }else if(angle >90 && angle <180){
        answer= 3;
    }else if(angle == 180){
        answer= 4;
    }
    
    return answer;
}

 
12. 양꼬치

function solution(n, k) {
    var answer = 0;
    var service_drink = parseInt(n/10);
    var have_to_pay_drink = k - service_drink;
    
    answer = n * 12000 + have_to_pay_drink * 2000;
    return answer;
}

 
13. 짝수의 합

function solution(n) {
    var answer = 0;
    for (let i=2 ; i <=n;i+=2 ){
        answer += i;
    }
    return answer;
}

 
14. 피자 나눠 먹기 (3)

function solution(slice, n) {
    return Math.ceil(n / slice);
}

아래는 내가 처음 썼던 답.......계속 시간초과가 났다......수학을 못하니까 사서 고생을 해버려. 
한문장이면 끝나는 답을 저렇게 길게 썼다 ㅋㅋㅋㅋ

function solution(slice, n) {
    var answer = 0;
    var i = 2;
    var j = 0;
    while(true) {
        if (slice >= n){
        answer = 1;
        } else {
            j = slice * i;
            if (j >= n){
                answer = i;
                break;
            }
            i++;
        }
    }
    return answer;
}

 
15. 문자열 안에 문자열

function solution(str1, str2) {
    var answer = 0;
    answer = str1.includes(str2)? 1 : 2;
    return answer;
}

 
16. 배열 뒤집기

function solution(num_list) {
    var answer = [];
    answer = num_list.reverse();
    
    return answer;
}

 
17. 최댓값 만들기(1)

function solution(numbers) {
    var answer = 0;
    var new_numbers = numbers.sort((a,b)=>b-a);
    answer = new_numbers[0] * new_numbers[1];
    return answer;
}

 
18. 편지

function solution(message) {
    var answer = 0;
    answer = message.length*2;
    return answer;
}

 
19. 세균 증식
아래는 내가 처음 썼던 답...^^ 또 한줄이면 끝나는 코드를 혼자 반복문 쓰기

function solution(n, t) {
    var answer = 0;
    for (let i = 0 ; i < t; i++){
        n *= 2
    }
    answer = n;
    
    return answer;
}

이 아래는 승우님의 답...현타온다.......ㅜㅜ

function solution(n, t) {
    var answer = 0;
    return n*2**t;
}

 
20. 특정 문자 제거하기

function solution(my_string, letter) {
    var answer = '';

    for (let i=0; i < my_string.length; i++){
        if (my_string[i] !== letter){
            answer += my_string[i];
        }
    }
    
    return answer;
}

아래는 또 내가 현타오게 한 풀이...^^ 아 그렇네 진짜 하 !!!! 이렇게 풀면 되는거지!!!

function solution(my_string, letter) {
    const answer = my_string.split(letter).join('')
    return answer;
}
function solution(my_string, letter) {
    return my_string.replaceAll(letter, "");
}

 
 


 
겨우 입문 문제인데도 알아가고 배워가는게 많은 시간이었다!
좋은 풀이를 공유해주신 백엔드 고인물 승우님과 자바스크립트 장인 민석님 감사합니다.