알고리즘: modulo

Kyoorim LEE·2022년 6월 15일
0

알고리즘TIL

목록 보기
5/40

문제

두 수(num1, num2)를 입력받아, num1num2로 나눈 나머지를 리턴해야 합니다.

입력

인자 1 : num 1

number 타입의 정수 (num1 >= 0)

인자 2 : num 2

number 타입의 정수 (num2 >= 0)

출력

number 타입을 리턴해야 합니다.

주의사항

  • 나눗셈(/), 나머지(%) 연산자 사용은 금지됩니다.
  • 0은 어떤 수로 나누어도 나머지가 0입니다.
  • 어떤 수도 0으로 나눌 수 없습니다. 이 경우 'Error: cannot divide by zero'를 리턴해야 합니다.

입출력 예시

let output = modulo(25, 4);
console.log(output); // --> 1

풀이

  1. num2 === 0일때 에러메세지를 리턴한다
  2. while 문을 돌려 num1에서 num2값을 계속 빼주고 남는 나머지 값을 리턴한다
  if(num2 === 0) {
    return "Error: cannot divide by zero";
  }

  while(num1 >= num2) {
    num1 = num1 - num2;
  }
  return num1;

한 줄평

체크포인트

  1. while문과 for문의 차이점
    for문은 정해진 횟수만큼 반복한다면, while문은 조건식이 true가 유지될 때까지 계속해서 반복한다. 조건식이 false가 되면 반복 행위를 멈추고 while문을 종료한다.
    => 위 문제의 경우 for문을 쓰게 되면 언제까지 돌려야할지 정하는 것이 애매하다. 이 문제야 말로 while문을 쓰기에 아주 적합하다
profile
oneThing

0개의 댓글