알고리즘(반복문)

전예훈·2023년 2월 22일
0

문제 수를 입력받아 0 부터 해당 수까지의 합을 리턴해야 한다.

01_sumTo

입력
인자1:num

  • number 타입의 정수 (num >= 0)

출력

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

입출력 예시

let output = sumTo(3);
console.log(output); // --> 6

반복문의 i를 0부터 num까지 계속 i를 증가 하게 함으로 써
초깃값 sum = 0 으로 지정해 두어서
sum = sum+i 즉 0+1+2+.... num까지의 합계를 구할 수 있다.

function sumTo(num) {
let sum = 0;
for(let i = 0; i<=num; i++){
sum = sum+ i
}
return sum;
}


수(num)를 입력받아 1부터 num까지의 정수로 구성된 문자열을 리턴해야 합니다.

makeDigits2

입력

인자 1 : num

  • number 타입의 정수 (num >= 1)

출력

  • string 타입을 리턴해야 합니다.

주의 사항

  • 반복문(while)문을 사용해야 합니다.
  • for문 사용은 금지됩니다.
  • 숫자(number string) 사이를 '-'로 구분합니다. ('1-2-3-4-5')

입출력 예시

let output = makeDigits2(5);
console.log(output); // --> "1-2-3-4-5"

output = makeDigits2(7);
console.log(output); // --> "1-2-3-4-5-6-7"

이 문제를 풀때는 가장 머리를 썼던 부분은 '-' 이 기호였다 단순하게 생각해야하는데 복잡하게 이것을 어떻게 반복문으로 나타낼까 가장 고심했던 부분이다. 초기값은 1로 시작하기 때문에 result 값을 1로 지정해 두었다.(여기서 조심해야 될점.! string 타입을 리턴해야하기 때문에 '1' 기호 붙이는거 잊지 않기!)
그리고 '-'기호는 처음부터 사용되는 것이 아니라 1이 나오고나서 사용되어야해서 result 값을 먼저 두고 + 리터럴안에 i값을 넣어 주었다. 여기서 조심해야 되는 것은 '-'를 result 값 처럼 1로시작해버리면
1-2-3-4-5가 아니라 1-2-3-4-5- 로 나올수 있기 때문에 i 값은 2로 시작하게 되면

정답인 "1-2-3-4-5" 가 출려되게 된다.

function makeDigits2(num) {
  let result = '1';
  let i = 2;
  while(i<=num){
    result = result +`-${i}`;
    i++
  }
  return result;
}

문제 : 수를 입력받아 1부터 해당 수까지의 수 중에서 3의 배수로만 구성된 문자열을 리턴해야 합니다.

입력: * number 타입의 정수 (num >= 0) 이상의 정수

출력: * string 타입을 리턴해야 합니다.

주의사항:

  • 반복문(for)문을 사용해야 합니다.
  • 숫자(number string) 사이의 구분은 없습니다. ('3691215')
  • 3의 배수가 없을 경우, 빈 문자열을 리턴해야 합니다.

입출력 예시

let output = makeMultiplesOfDigit(7);
console.log(output); // --> "36"

output = makeMultiplesOfDigit(19);
console.log(output); // --> "369121518"

이 문제에서는 기본 반복문과 비슷하지만 num 이하의 숫자들중 3의 배수만을 출력하는 것이기 때문에 for 문의 입력값을 잘 정해 주어야 했습니다. 이 문제 또한 문자열로 return을 해줘야 하기 때문에 result 값에 ''을 해주고 i의 값은 3의 배수이기 때문에 3부터 시작해 num까지 3의 배수로 증가되어야 하기 때문에 i+=3을 설정 해 두었습니다.

function makeMultiplesOfDigit(num) {
  let result = '';

  for(let i = 3; i<=num; i+=3){
    result = result +String(i);
  }
  return result;
}
profile
더욱더 QA스럽게!

0개의 댓글