[프로그래머스 0단계 :JS] 작성일 기준 정답률 89%

안녕하세요 연하입니다. 

오늘은 프로그래머스 0단계 정답률 89% 문제를 풀어봤습니다.

정답 코드입니다. 

1. 각도기 

제가 처음 실수했던 부분이 

0<angle<90 

이런 방식으로 부등호를 작성했는데 JS에선 0<angle && angle<90 으로 작성해야하네요.

언어마다 문법이 약간씩 다르니 이부분 주의해주시면 되겠습니다. 

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

2. 짝수의 합

처음엔 처음부터 while로 전체를 반복했는데 시간초과가 나오네요. 

function solution(n) {
    var answer = 0;
    if(n%2 == 0){//짝수일 때
        let p =n/2;
        while(p){
            answer = p + answer;
            p = p-1;
        }
    }
    else {
        let p =(n-1)/2;
        while(p){
            answer = p + answer;
            p = p-1;
        }
    }
    return answer*2;
}

(수정!!)

공식을 이용하면 좀더 빠르게 계산할 수 있습니다. 

n이하의 수를 모두 더하는 공식은 n(n+1)/2 입니다. 

이를 이용하게 되면

function solution(n) {
    var answer = 0;
    answer = Math.floor(n/2)*(Math.floor(n/2)+1);
    return answer;
}