Basic for coding test - 반복문 편

NavDevJae·2021년 2월 21일
0

Basic Coding Test

목록 보기
4/4
post-thumbnail

기본적인 코딩 테스트 예제.

문제 1. 문자열을 입력받아 'a'의 인덱스를 리턴해야 한다. // findA

function findA(str) {
  for (let i = 0; i < str.length; i++) {  // str내의 각 문자를 for문으로 돌면서 체크. 
    if (str[i] === 'a') {  // i번째 인덱스의 값이 문자열 a와 같으면  
      return i;  // 인덱스 i를 리턴한다. 
    }
  }
}

문제 2. 수를 입력받아 짝수인지 여부 리턴해야 한다. // isEven

// num가 음수인 경우 음수를 양수로 바꿔준다. 
// num가 0이상인 경우를 while괄호 내에 넣어준다. 
// num === 0인 경우는 짝수 => true // 2를 나눈 나머지가 0
// num === 1인 경우는 홀수 => false // 2를 나눈 나머지가 1
// num -= 2 를 반복적으로 실행해준다. 
function isEven(num) {
  if (num < 0) { // num가 음수인 경우 
    num = -num; // 음수를 양수로 바꿔준다. 
  }
  while (num >= 0) {
    if (num === 0) { // num가 0인 경우
      return true; // 0은 짝수 취급하기에 true
    } else if {  
      return false; // 홀수이기에 false
    }
    num = num - 2; // 반복적으로 2씩 감소시킨다.
  }
}

문제 3. 수를 입력받아 1부터 num까지의 수 중에 2의 배수만으로 구성된 문자열 리턴해야 한다. ex) num = 5 -> 2-4-6-8-10 // makeEvenDigits

function makeEvenDigits(num) {
  let result = '2'; // result를 선언하고 문자열 2를 할당. 
  let i = 1; // i의 초기값에 1을 할당. 
  while (num > i) { // num가 1보다 크면 while문 실행.
    result += `-${2*i}`; // 1보다 큰 i를 2배씩 곱해준 값을 문자열로 변환 후 result에 붙여준다. 
    i++; // i의 값 1씩 증가. 
  }
  return result; // result값 리턴. 
}

문제 4. 두 수를 입력받아 두 수를 포함하여 두 수 사이의 홀수의 개수를 리턴해야 한다. // makeOddDigitsBtwNum

//firstNum를 정한다. 
//lastNum를 정한다. 
//for문으로 돌리면서 2로 나눈 나머지가 1이면 카운트를 더해준다. 
function makeOddDigitsBtwNum(num1, num2) {
  let firstNum = num1; // 처음 시작 num에 num1을 할당. 
  let lastNum = num2; // 마지막 num에 num2를 할당. 
  let count = 0;
  if (num1 > num2) { // num1이 num2보다 크면 
    firstNum = num2; // 처음 시작 num에 num2를 할당. 
    lastNum = num1; // 마지막 num에 num1을 할당. 
  }
  if (firstNum === 0) {
    firstNum === 1;
  }
  for (let i = firstNum; i <= lastNum; i++) {
    if (i % 2 === 1) { // 2로 나눈 나머지가 1인 경우 즉 홀수인 경우.
      count++; // count를 1 증가시켜준다. 
    }
  }
  return count;
}

문제 5. 소수여부를 리턴해야 한다. //prime

// 소수여부를 확인하려면 나눠떨어진 수가 2개여야 한다. 
// count를 하여 count가 2가 되면 true를 리턴. 
// 아니면 false를 리턴. 
function prime(num) {
  let count = 0; // count초기값에 0을 할당.
  for (let i = 1; i <= num; i++) {  
    if (num % i === 0) { // num가 i에 의해 나눠 떨어지면 
      count++; // count를 1 증가시켜준다.
    }
  }
  if (count === 2) { // count가 2라면 
    return true; // 참을 리턴. 
  }
  return false;
}
profile
전직 항해사 출신 미래 개발자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN