※문제설명
정수 num1, num2가 매개변수로 주어질 때,
num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.
My Solution
function solution(num1, num2) {
//1. 매개변수 변수 저장
let a=num1;
let b=num2;
//2. 매개변수로 나눴을 때 값 변수 저장
let result=a%b
// 3. 결과 도출
return result;
}
더보기
나머지를 구하는 연산자 (%)를 이용하여 결과 값을 도출했다.
부족한 점 | 나누기 연산자(/)는 알고있었지만, 나머지를 구하는 연산자(%)는 알지못해 나머지를 구하는데 어려움이 있었다. 그리고 쓸데없이 변수 저장을 많이 한다. js에 대한 전체적인 흐름을 명확하게 파악하지 못했다. |
개선 방안 | 어떤 연산자가 있는지 알 필요가 있다. 다양한 방법으로 코딩을 짜보면서 방법을 익힌다. |
Different Approach
const solution = (num1, num2) => num1 % num2
기존의 함수 표현식에서 function 키워드를 삭제하고
인자를 받는 매개변수의 괄호()와 코드블록 ({}) 사이에 화살표=>만 넣어주면 이것이 바로 화살표 함수이다.
let arrow = function (a,b){기존 함수 표현식}
let arrow = (a,b)=> ({ 화살표 함수 표현식 })
함수 내부의 내용이 반환값(return)만 있다면 코드블록(함수 몸통)인 ({})와 return을 생략 가능
그리고 또 하나, 인자가 하나만 받는다면 매개변수의 괄호()도 생략 가능/ but 인자가 없으면 생략 불가
let arrow = a => ({ a });
객체를 즉시 반환해야하는 경우에는
예외적으로 객체임을 명시적으로 알려주기위해서 ()를 묶어줌으로써 () 안의 값이 객체임을 표기 필수
느낀 점 | 기존 함수 표현식만 알고 있어 화살표 함수 표현식이 낯설었다. 그리고 변수 뒤에 function이 왜 오는 지 모르겠다...ㅎ 항상 함수 선언 할때는 function이 앞에 왔던 것 같은데.. 여전히 함수에 대한 지식이 부족한 것 같다. 다른 사람 코딩을 보고 왜 이렇게 간단할까? 생각이 들었었는데 경우에 따라 생략이 가능하다는 것을 알게되었다. 객체임을 명시적으로 알려주기위해서는 생략하면 안된다는 사실은 확실하게 기억하고 있어야겠다. |
참고 블로그 : https://webclub.tistory.com/649
'프론트엔드로 가는 길 > 프로그래머스' 카테고리의 다른 글
06. 짝수의 합 (0) | 2022.11.02 |
---|---|
05. 각도기 (0) | 2022.10.30 |
04. 숫자 비교하기 & 나이 출력 (0) | 2022.10.29 |
03. 두 수의 차 & 곱 (0) | 2022.10.28 |
02. 몫 구하기 (1) | 2022.10.27 |