[프로그래머스/코딩테스트 모음/Javascript] 2

TED·2023년 8월 16일
0

Javascript CodingTest

목록 보기
2/63
post-thumbnail
  • 프로그래머스 코딩테스트 0단계 정답률 높은거부터 풀자!!
    지금의 나한테도(밑바닥실력 겸손아님 진짜컴맹) 너무 쉬운문제는 제하자!
    *참고할만한 답변이 있는 문제는 포스팅하쟈

<오늘의 문제>

  1. 두 수의 나눗셈
  2. 각도기
  3. 짝수의 합
  4. 배열의 평균 값
  5. 양꼬치

1. 두 수의 나눗셈

function solution(num1, num2) {
    var answer = 0;
    
    return answer = Math.floor((num1 / num2) * 1000);
}
  • Math.floor 는 오늘 알게됬는데 소숫점 아래로 내린다 !
function solution(num1, num2) {
    return Math.trunc(num1 / num2 * 1000);
}
  • 다른 사람 풀이
    : Math.trunc() 는 소수점 이하는 다 버리는데 음수의 경우를 생각해서 floor 대신 할 것으로 사용하자.
    왜나하면 음수 일 때 floor는 *예시 -> Math.floor(-23.3) = -24 가 되니까!

2. 각도기

function solution(angle) {

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

    return answer;
}
  • 문제 설명의 부분을 그대로 옮겨서 조건식에 적었는데 저렇게 쓸필요가 없었다..왜냐하면 다른사람 풀이를 보니,
function solution(angle) {
    if(angle < 90){
        return 1
    }else if(angle === 90){
        return 2
    }else if(angle < 180){
        return 3
    }else {
        return 4
    }
    return false
}
  • 이 식처럼 첫번째 조건식에 부합된 값은 뒤에서도 디폴트값이 되는거같다 그래서 굳이 나처럼 풀어쓰지 않아도 되는거같다..
function solution(angle) {
    return angle < 90 ? 1 : angle === 90 ? 2 : angle < 180 ? 3 : 4;
}
  • 난 삼항연산자를 보면 조건식 ? true값 : false값 인 있는 그대로의 직관적인 부분만 받아드려서 그런가 이렇게 false 자리에 조건식이 들어가있는게 피부로 와닿지가 않아서 못쓰겠다 ㅠㅠ

3. 짝수의 합

function solution(n) {
    var answer = 0;
    for(let i =0; i <= n; i++) {
      if (i % 2 === 0) {
        answer = answer + i;
      }
    }
    return answer;
}
  • 윗 부분까지는 짝수를 구하는 식이라는게 이해가 아주 쉽게 됬는데, answer = answer + i; 가 어째서 짝수의 합을 나타내는건지 이해가 안됬다 왜 n값에 짝수를 대입하면 answer = answer + i;식에 어떻게 관련이 되가지고 값이 나오는거지?하면서 이해가 정말 안됬다;; 그래서 이리저리 생각하다가 그냥 편하게 n = i라고 생각했더니 이해가 됬다..ㅠㅠ 왜 이렇게 쉬운문제에서도 잡생각이 들어서 이해를 못할까?

4. 배열의 평균 값

function solution(numbers) {
    let sum = 0; // 원소들의 합을 저장할 변수
    for (let i = 0; i < numbers.length; i++) {
        sum += numbers[i]; // 배열의 각 요소를 더해줌
    }
    const average = sum / numbers.length; // 평균 계산
    return average; // 평균값 반환
}
  • const를 자주 사용하쟈,, 익히자 number[i]는 결국 요소이다. 배열의 길이만큼 요소값은 합쳐지는 것이니, 평균값은 요소를 전부 합친 값에 배열길이를 나누면된다. 배열의 길이가 요소의 갯수니까 !!

5. 양꼬치

function solution(n, k) {
    var answer = 0;
    answer = n * 12000 + (k - Math.floor(n/10)) * 2000
    return answer;
}
  • 내 답인데,, 0단계는 이렇게 조건문 반복문의 쓰임 없이 간결한 답을 원하는 문제가 많은건가?
    정답률이 높은 문제만 풀고 있어서 그런가보다.
function solution(n, k) {
    return n*12000 + k*2000 - parseInt(n/10)*2000
}
  • 다른 사람 풀이인데 이 사람말고도 parseInt 를 사용하는 사람이 많아서 검색해봤더니 Number() 와 같이 문자형을 숫자형으로 바꿔주는 기능인데 왜들 사용한건지 의문이 든다.. 내일 물어봐야겠다;..; 왜지??? 뭐 숫자형으로 바뀌면서 소수점이 사라져서? 근데 애당초 문자형이 아니었는데..아닌가 아 몰라 ..ㅜㅜ

  • 구글링을 좀 더 해본 결과.. 소수점은 무시하고 출력해주는 기능이 있다는걸 알았다..!

profile
컴맹 개발 입문자

0개의 댓글