문제 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; }