본문 바로가기
프론트엔드로 가는 길/프로그래머스

01. 나머지 구하기

by woody-j 2022. 10. 27.

※문제설명

정수 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