⛵ 항해99/개강준비

[JavaScript 문법] 프로그래머스_1일차

hhhhy 2023. 7. 27. 16:13

 두 수의 합/차/곱 

  • 문제 주소

합 : https://school.programmers.co.kr/learn/courses/30/lessons/120802

차 : https://school.programmers.co.kr/learn/courses/30/lessons/120803

곱 : https://school.programmers.co.kr/learn/courses/30/lessons/120804

 

  • 나의 풀이
# 합
function solution (num1, num2) {
    return num1 + num2
}


# 차
function solution (num1, num2) {
    return num1 - num2
}


# 곱
function solution (num1, num2) {
    return num1 * num2
}

 

 몫 구하기(소수점 버리기) 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120805

 

  • 나의 풀이
function solution(num1, num2) {
    return Math.floor(num1 / num2)
}

 

  • 알게 된 것
📍 Math.floor()메서드
- 항상 내림하고 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환

# 예시
console.log(Math.floor(5.95));  // 5
console.log(Math.floor(5.05));  // 5
console.log(Math.floor(5));  // 5
console.log(Math.floor(-5.05));  // -6

# 참고
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor

 

 나머지 구하기 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120810

 

  • 나의 풀이
function solution(num1, num2) {
    return num1 % num2
}

 

 나이 출력 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120820

 

  • 나의 풀이
// 선생님 : 40살
// 2022 - age(40) + 1 = ?(출생년도)
// 2022 - ?(출생년도) + 1 = age(40)

function solution(age) {
    return 2022 - age + 1;
}

console.log(solution(40))

 

 숫자 비교하기 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120807

 

  • 나의 풀이
function solution(num1, num2) {
    var answer = (num1 === num2) ? 1 : -1 ;
    return answer;
}

console.log(solution(3, 11))

 

 각도기 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120829

 

  • 나의 풀이
function solution(angle) {

    if (0 < angle && angle < 90) {
        return 1;
    } else if (angle === 90) {
        return 2;
    } else if (90 < angle && angle < 180) {
        return 3;
    } else if (angle === 180) {
        return 4;
    }
}

console.log(solution(91))

 

  • 알게 된 것
📍 오류1 : 어떤 각도를 넣어도 계속 1만 출력됨
- if 조건에 2가지 이상을 넣어 줄 때는 &&나 || 연산자를 사용해야 한다

# 오류코드
function solution(angle) {

    if (💡0 < angle < 90) {
        return 1;
    } else if (angle = 90) {
        return 2;
    } else if (💡90 < angle < 180) {
        return 3;
    } else if (angle = 180) {
        return 4;
    }
}


📍 오류2 : 90~180도까지 2만 출력됨
- '같다'표현 : ===(일치연산자 : 타입까지 모두 일치) 또는 ==(동등연산자 : 타입 안보고, 값만 일치)로 사용해야 한다

# 오류코드
function solution(angle) {

    if (0 < angle && angle < 90) {
        return 1;
    } else if (💡angle = 90) {
        return 2;
    } else if (90 < angle && angle < 180) {
        return 3;
    } else if (💡angle = 180) {
        return 4;
    }
}


📍 동등연산자(==) : 타입구분 X
  1 == 1  // t
  1 == "1"  // t
  0 == false  // t

 

 짝수의 합 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120831

 

  • 나의 풀이
function solution(n) {
    var answer = 0;
    for (let i = 0; i <= n; i++) {
        if (i % 2 === 0) {
            answer += i;
        }
    }
    return answer;
}

console.log(solution(5))