프로그래머스 코딩테스트 연습으로 정답률 높은 순으로 정렬하여 자바스크립트로 풀어보겠습니다.
두 수의 곱
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
그러니 버그 예방 차원에서 그냥 세미콜론을 붙여주겠습니다.
몫 구하기
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;
}
오늘 두 문제를 풀었습니다. 앞으로도 파이썬만 배운 사람 기준으로 자바스크립트 문제를 꾸준히 풀어보겠습니다.
'코딩' 카테고리의 다른 글
[파이썬] 코딩테스트연습 <이차원 배열 대각선 순회하기> (1) | 2023.11.11 |
---|---|
[JS] 코딩테스트 연습 - 두 수의 차, 나머지 구하기, 나이 출력 (0) | 2023.09.04 |
아무도 안 궁금하겠지만 공표합니다. 자바스크립트를 공부해보겠습니다. (0) | 2023.08.25 |
[파이썬] 마법의 엘리베이터 - 프로그래머스 코딩테스트 연습 (0) | 2023.08.18 |
[파이썬] 코딩테스트 연습 - 성격 유형 검사하기 (0) | 2023.08.18 |