본문 바로가기

코딩

[JS] 파이썬만 할 줄 아는 사람의 자바스크립트 문제 풀이

반응형

프로그래머스 코딩테스트 연습으로 정답률 높은 순으로 정렬하여 자바스크립트로 풀어보겠습니다.

 

 

두 수의 곱

 

function solution(num1, num2) {
    var answer = 0;
    answer = num1*num2 // 여기 맨 뒤에 ;이 있어야 할 것 같게 생겼는데 없어도 작동함.
    // 주석 달려고 검색해서 //이 한 줄 주석인 것을 알아냄.
    return answer;
}

 

파이썬에서 보이던 def는 function, :은 {}이 되었습니다. 어떤 기능을 할 지 할당해주지 않아도 되던 파이썬에 비해 var이 answer 앞에 써있게 되면서 answer는 var이라는 것을 표현하고 있습니다. 또한 코드 한 줄이 끝날 때 마다 ;이 사용됩니다.

 

var

: 변수 선언 방식 중 하나입니다. var 이외에  let, const가 있습니다. 어떤 이유에서인지는 모르겠지만 이제는 var 대신 let이나 const를 사용하는 것이 좋다고 합니다. 저는 여기까지만 이해했고 지금은 더 이상 이해해보려 하지 않겠습니다.

 

; (세미콜론)이 문장 끝에 꼭 있어야 하는 이유

: 명령문이 한 줄을 다 차지할 경우에는 세미콜론이 필요하지 않습니다. 그러나 한 줄에 두 개 이상의 명령문이 필요하다면 반드시 세미콜론으로 구분해야 합니다. 하지만, 세미콜론이 필요하지 않은 경우라도 항상 세미콜론으로 끝마치는 편이 버그 예방 차원에서 더 좋은 습관이라고 여겨집니다.

*출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Grammar_and_types

 

문법과 자료형 - JavaScript | MDN

이 장은 JavaScript의 기본 문법과 변수 선언, 자료형 및 리터럴을 다룹니다.

developer.mozilla.org

그러니 버그 예방 차원에서 그냥 세미콜론을 붙여주겠습니다.

 

 

몫 구하기

 

function solution(num1, num2) {
    var answer = 0;
    answer = num1/num2;
    return answer;
}
//입력값 〉	7, 2
//기댓값 〉	3
//실행 결과 〉	실행한 결괏값 3.5이 기댓값 3과 다릅니다.

 

파이썬처럼 몫을 구하기 위해 //를 사용하면 문법에 어긋납니다. 그래서 궁금해서 그냥 /를 사용해봤습니다.

3이 나와야 하지만 3.5가 나옵니다.

알아서 몫을 구해주는 문법이 파이썬처럼 있...을 것 같지는 않은데 있으면 좋겠습니다.

아니면 변수를 다시 선언할 때 정수형만 담기게 하는 변수가 있다던가...?

아니면 소숫점을 버리는 방식이 있다든지......

이런 방법들이 있을 것 같다는 생각이 듭니다.

 

객체도 있고 메소드도 있는 자바스크립트

 

왜 있습니까? 자바스크립트에는 메소드 같은 건 없을 줄 알았는데 제가 너무 자바스크립트를 무시했나봅니다.

Math 객체의 floor 메소드를 사용하면 소숫점을 버릴 수 있습니다.

 

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

 

오늘 두 문제를 풀었습니다. 앞으로도 파이썬만 배운 사람 기준으로 자바스크립트 문제를 꾸준히 풀어보겠습니다.

반응형