: 너무 쉬운 구몬 학습과 같은 문제들이지만 너무 오랜만에 코테 문제를 풀어서 이렇게 가벼운 문제들로 워밍업을 해보고자 풀어본다(왜 혼자 핑계를 대시고 계시죠..?)
: 문제는 너무나도 간단하다. 너무 간단해서 나만의 룰을 추가해서 풀어봤다. 본래 % 연산자만 쓰면 바로 답이 나오는 유형이지만, +, - 연산과 while문을 써서 풀어봤다. 나머지를 구한다는게 사실 우리가 수기로 작성해서 풀거나 혹은 머리속으로 연산하기 때문에 굉장히 심플한 과정일 수 있지만 이걸 컴퓨터에게 하나하나 설명한다고 했을 때는 조금 다른 얘기가 된다. 예시로 설명해보면 13명의 사람들을 딱 같은 비율인 N명씩(N = 주어지는 파라미터) 나눠서 학급에 배정한다 했을 때 순서대로 N명을 1반에, N명을 2반에 ... 이렇게 하다보면 결국 딱 나눠 떨어지거나(1), 몇명이 남게 된다(2). 이런 규칙을 생각해보면 +, - 개념만으로도 나눗셈(몫, 나머지) 개념을 소화해낼 수 있다. 아래는 그와 같은 개념에 입각해 만든 코드!.
function solution(num1, num2) {
// 메서드를 안쓰고(+, -로만) 풀어보자
// 1) num2를 계속해서 더하다가 num1을 넘어가기 직전의 숫자에서 stop(while문)
// or 이미 넘어간 상태에서 stop을 해주고, 결과값에서 num2를 한번 빼주면됨(채택)
// 2) 그 때까지 더해진 값을 num1에서 빼준 소수 단위의 값이 정답임
// 3) 이 때, 딱 나눠 떨어지는 케이스를 분기처리 하기 위해 while문에서 val === num1 이 같으면 바로 0을 리턴해주면 된다.
let val = num2;
while(true) {
if(val > num1) {
break;
} else if(val === num1) {
return 0;
}
val += num2;
}
return num1 - (val-num2);
}