let sum = 1;
for(let n = 2; n <= 4; n = n + 1) {
sum = sum + n; // 반복할 내용
}
console.log(sum); // 10
ex) 구구단 출력
function mulTablePrinter(num) {
for (let n = 1; n <= 9; n = n + 1) {
console.log(num * n)
}
}
function mulTablePrinter() {
for(let n = 2; n <= 9; n = n + 1) {
for(let m = 1; m <= 9; m = m + 1) {
console.log(n * m)
}
}
}
function mulTablePrinter() {
for(let n = 2; n <= 9; n = n + 1) {
for(let m = 1; m <= 9; m = m + 1) {
console.log(`${n} * ${m} = ${n * m}`)
}
}
}
let sum = 1;
let n = 2;
while(n <= 4) {
sum = sum + n;
n = n + 1;
}
console.log(sum); // 10
function findTheBug(word) {
for (let i = 0; i <= word.length; i++) {
if (word[i] === '#') {
return i;
}
} return undefined;
}
function sumTo(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
} return sum;
}
function isOdd(num) {
if (num < 0) {
num = -num;
}
while (num >= 0) {
if (num === 1) {
return true;
} else if (num === 0) {
return false;
}
num -= 2
}
}
문제풀이: /
or %
를 쓸 수 없는 상황에서 홀수/짝수를 구분하기 위해서는 계속 2를 뺏을때(반복문) 나머지가 0인지 1인지로 구분할 수 있다
function makeDigits2(num) {
let result = '1';
let i = 2;
while (i <= num) {
result += `-${i}`;
i++;
} return result;
}
function makeOddDigits(num) {
let result = '';
let count = 0;
let i = 1;
while (count < num) {
result += String(i);
i = i + 2;
count++;
} return result;
}
function makeMultiplesOfDigit2(num1, num2) {
// num1 과 num2 사이의 2의 배수의 개수를 리턴한다
// TODO: 여기에 코드를 작성합니다.
let count = 0;
if (num1 >= num2) {
for (num2; num2 <= num1; num2++) {
if (num2 % 2 === 0 && num1 !== 0 && num2 !== 0) {
count++;
}
}
} else if (num1 < num2) {
for (num1; num1 <= num2; num1++) {
if (num1 % 2 === 0 && num1 !== 0 && num2 !== 0) {
count++;
}
}
} return count;
}
function getMaxNumberFromString(str) {
let maxNum = 0;
for (let i = 0; i < str.length; i++) {
if (Number(str[i]) > maxNum) {
maxNum = Number(str[i]);
}
} return String(maxNum);
}
function replaceAll(str, from, to) {
let result = '';
for (let i = 0; i < str.length; i++) {
if (str[i] === from) {
result += to;
} else {
result += str[i];
}
} return result;
}
function computePower(base, exponent) {
let result = 1;
for (let i = 0; i < exopnent; i++) {
result *= base;
} return result;
}
function computePoser(base,exponent) {
return Math.pow(base,exponent);
}
function isPrime(num) {
// 소수(prime number): 1과 자신만 그 수의 약수 -> 1과 자기 자신 이외에는 자연수로 나눌 수 없는, 대신 1보다 커야함
// 1. 1보다는 커야한다
// 2. 짝수는 제외 (단 2는 소수)
// 3. 3부터 자기 자신보다 작은 수까지 나누어 떨어지는 경우가 단 한차례라도 있으면 그건 소수가 아님
// TODO: 여기에 코드를 작성합니다.
if (num === 1) {
return false;
}
if (num === 2) {
return true;
}
if (num % 2 === 0) {
return false;
}
for (let i = 3; i < num; i++) {
// num을 (3과 num사이에 있는 수)로 나눠서 나머지가 0인게 하나라도 있으면 그건 소수가 아님
if (num % i === 0) {
return false;
}
} return true;
}
function isPrime(num) {
// Math.sqrt()는 입력값의 제곱근을 구함 ex.Math.sqrt(100) === 10, Math.sqrt(16) === 8
// parseInt는 소수점을 제외하고 정수를 리턴함
let sqrt = paseInt(Math.sqrt(num));
if (num === 1) {
return false;
}
if (num === 2) {
return true;
}
if (num % 2 === 0) {
return false;
}
for (let i = 3; i <= sqrt; i+=2) {
if (num % i === 0) {
return false;
}
} return true;
}
function listPrimes(num) {
let result = '2';
for (let i = 3; i <= num; i +=2) { // i는 소수, 소수는 무조건 홀수
let isPrime = true;
let sqrt = parseInt(Math.sqrt(i));
for (let divider = 3; divider <= sqrt; divider += 2) {
if (i % divider === 0) {
isPrime = false;
break; // 그때 멈춘다는 뜻
}
} if(isPrime) { // if(isPrime)??????
result = `${result}-${i}`;
} return result;
}
function makePermutations(str) {
//str에 중복된 문자가 있다면 true 없으면 false를 리턴한다
// TODO: 여기에 코드를 작성합니다.
let result = '';
for (let a = 0; a < str.length; a++) {
for (let b = 0; b < str.length; b++) {
result = result + `${str[a]}${str[b]},`;
}
} return result.slice(0, result.length - 1); // 이부분이 이해가 안감.. 그냥 return result; 하면되는거 아닌가...?
}
문제:문자열을 입력받아 해당 문자열에 중복된 문자(letter)가 존재하는지 여부를 리턴해야 합니다.
인자 1 : str -> string 타입의 문자열
출력: boolean 타입을 리턴해야 합니다.
주의 사항
이중 반복문(double for loop)을 사용해야 합니다.
빈 문자열을 입력받은 경우에는 false을 리턴해야 합니다.
function hasRepeatedCharacter(str) {
for (let a = 0; a < str.length; a++) {
for (let b = a+1; b <= str.length; b++) {
if (str[a] === str[b]) {
return true;
}
}
} return false;
}
문제: 문자열을 입력받아 해당 문자열을 처음부터 한 글자(letter)씩 다시 작성하려고 합니다. 이 때, 한 글자를 추가할 때마다 부분적으로 완성된 문자열을 전부 이어붙인 문자열을 리턴해야 합니다.
인자 1 : str -> string 타입의 문자열
출력: string 타입을 리턴해야 합니다.
주의 사항
이중 반복문(double for loop)을 사용해야 합니다.
str.slice, str.substr, str.substring 사용은 금지됩니다.
빈 문자열을 입력받은 경우에는 빈 문자열을 리턴해야 합니다.
function makeMarginalString(str) {
let result = '';
for (let a = 0; a <= str.length; a++) {
for (let b = 0; b <=a; b++) {
result += str[b];
}
} return result;
}