/*
주어진 문자열의 문자열의 길이가 10 이상이라면,
해당 문자열의 모든 문자를 대문자로 변경하여 하나씩 문자를 출력하도록 코드를 구현하세요.
*/
let str = 'javascriptjavaspring';
if(str.length >= 10) {
// str = str.toUpperCase();
for (i=0;i<str.length;i++) {
console.log(str[i].toUpperCase());
}
}
str = str.toUpperCase();
->console.log(str[i].toUpperCase());
로 toUpperCase()를 console.log에 한 번에 적용시켜 코드를 줄일 수 있었음!
구구단
for (let i = 2; i < 10; i++) {
console.log(`${i}단 시작합니다.`);
for (let j = 1; j < 10; j++) {
console.log(`${i} X ${j} = ${i*j}`);
}
console.log(`${i}단 끝났습니다.\n`);
}
-> 시작할 때 ㅁ단 시작합니다.
, 끝날 때 ㅁ단 끝났습니다. + 공백
을 넣어줌으로 깔끔한 구구단.
// 함수선언문
function declared() {
console.log('함수선언문');
}
// 함수표현식
let declared = function() {
console.log('함수표현식');
}
declared();
// 함수를 declared 변수에 '할당', 기능은 동일
함수표현식 : 변수에 함수를 저장하여 함수를 사용할 때나 불러올 때 용이함 (함수선언문 보다 多 사용)
구구단 (함수)
// 구구단 n단을 출력하는 함수를 정의하고 호출
let multiplication = function(n) {
if(n >= 2 && n < 10) {
for(i = 1; i < 10; i++) {
console.log(`${n} X ${i} = ${n*i}`);
}
} else {
console.log("2부터 9까지의 숫자만 입력 가능");
}
}
multiplication(7)
// 1 ~ count 사이의 구구단을 출력하는 함수를 정의하고 호출
function multiplication(n, count) {
if(n >= 2 && n < 10) {
for(let i = 1; i < count + 1; i++) {
console.log(`${n} X ${i} = ${n*i}`);
}
} else {
console.log("2부터 9까지의 숫자만 입력 가능");
}
}
multiplication(2,5);
let result = 0;
function sumTo(num) {
for(let i = 0; i < num + 1; i++) {
result += i;
}
return result;
}
console.log(sumTo(10));
// 수(num)를 입력받아 1부터 num까지의 정수로 구성된 문자열을 리턴
let str = "";
function makeDigits(num) {
for(i=1; i<num+1; i++) {
str += i;
}
return str;
}
console.log(makeDigits(5));
// 수(num)를 입력받아 1부터 num까지의 정수로 구성된 문자열을 리턴
// "1-2-3-4-5" , "1-2-3-4-5-6-7"처럼 출력
// "1"을 고정 -> `-숫자`가 추가되게 진행
let str = "1";
let count = 2;
function makeDigits2(num) {
while(count < num + 1) {
str += `-${count}`; // `-숫자` 추가
count++;
}
return str;
}
console.log(makeDigits2(5));
// function makeDigit2(num) {
// let result = "";
// let count = 1;
// while(count <= num) {
// if(count === num) {
// result += count;
// } else {
// result += count + "-";
// }
// count++;
// }
// return result;
// }
// console.log(makeDigit2(5)); // "1-2-3-4-5"
// 수를 입력받아 1부터 해당 수까지의 수 중에서 3의 배수로만 구성된 문자열을 리턴
let result = "";
function makeMultiplesOfDigit(num) {
for(i=1; i<num+1; i++) {
if(i % 3 === 0) {
result += i;
}
}
return result;
}
let output = makeMultiplesOfDigit(9);
console.log(output);
// 문자열과 문자를 입력받아 문자열에서 문자(letter)가 등장하는 횟수를 리턴
let result = 0;
function countCharacter(str, letter) {
for (let i = 0; i < str.length; i++) {
if (str[i] === letter) { // str[i]가 letter와 일치 여부
result++; //result += 1;
} else if (str === "") { // str이 빈 문자열일 때
return 0;
}
}
return result;
}
let output = countCharacter('I am a hacker', 'a');
console.log(output);
// 숫자 문자열을 입력받아 문자열을 구성하는 각 숫자 중 가장 큰 수를 나타내는 숫자를 리턴
// 가장 큰 수가 들어가는 변수 maxnum을 만들고
// str[i] > maxnum 이면 maxnum에 str[i]를 넣어서 가장 큰 수로 만드는 것을 반복
function getMaxNumberFromString(str) {
let maxnum = 0;
for(i = 0; i<str.length; i++) {
if(str[i] > maxnum) {
maxnum = Number(str[i]);
} else if(str === "") {
return '0';
}
}
return maxnum;
}
console.log(getMaxNumberFromString('123'));
// 문자열과 두 개의 문자(from, to)를 입력받아
// 문자열에 등장하는 특정 문자(from)가 다른 문자(to)로 바뀐 문자열을 리턴
// str을 for문으로 반복
// 반복하면서 replaceAll() 메서드를 통해 단어 변환
// function replaceAll(str, from, to) {
// str = str.replaceAll(from, to)
// return str;
// }
// console.log(replaceAll('loop', 'o', 'e'));
function replaceAll(str, from, to) {
let result = '';
for(i = 0; i < str.length; i++) {
if(str[i] === from) {
result += to;
} else {
result += str[i];
}
}
return result;
}
console.log(replaceAll('loop', 'o', 'e'));
// 수를 입력받아 약수(factor)의 합을 리턴
let result = 0;
function getSumOfFactors(num) {
for(i = 1; i < num + 1; i++) {
if(num % i === 0) {
result += i;
}
}
return result;
}
console.log(getSumOfFactors(12));
// 1 이상의 자연수를 입력받아 소수(prime number)인지 여부를 리턴
function isPrime(num) {
if(num === 1) return false;
for(i = 2; i < num; i++) { // num이 3이상 일때
if(num % i === 0) {
return false; // num이 2이상의 수로 나누어 떨어지는게 하나라도 있으면 소수 x
}
}
return true;
}
console.log(isPrime(15));
}
console.log(isPrime(15));
// 2 이상의 자연수를 입력받아 2부터 해당 수까지의 소수(prime number)들을 리턴
// 이중 반복문(double for loop)을 사용
function listPrimes(num) {
let result = '2';
for(let i = 3; i < num; i+=2) {
// 각각 i의 값이 소수인지 판별
// 반복문 사용
let check = false;
let sqrt = parseInt(Math.sqrt(i));
for(let j = 2; j <= sqrt; j++) {
if(i % j === 0) {
// 소수라면
check = true;
}
}
if(!check) {
result += "-" + i;
}
}
return result;
}
// 문자열을 입력받아 해당 문자열에 등장하는
// 각 문자(letter)를 가지고 만들 수 있는 길이 2의 문자열들을 리턴
// 빈 문자열을 입력받은 경우에는 빈 문자열을 리턴
// 이중 반복문을 사용
// 'ab'; --> 'aa,ab,ba,bb'
// '123'; --> '11,12,13,21,22,23,31,32,33'
// [0],[0] -> [0],[1] -> [1],[0] -> [1], [1] ...
// 1. i=0일때 j=0,1,2 ...에서 str.length만큼 반복해서 result에 대입
// 2. i=1일때 j=0,1,2 ...에서 str.length만큼 반복해서 result에 대입
// 3. 앞의 과정 반복
// 4. slice로 마지막 , 없애주기!
function makePermutations(str) {
let result = "";
for (i = 0; i < str.length; i++) {
for (j = 0; j < str.length; j++) {
if (str == "") {
return "";
}
result += `${str[i]}${str[j]},`; // result에 결과물들을 문자열로 넣음
}
}
return result.slice(0, result.length - 1);
}
console.log(makePermutations("abc"));
j = i + 1
로 설정// 문자열을 입력받아 해당 문자열에 중복된 문자(letter)가 존재하는지 여부를 리턴
// * 같은 index와의 비교는 제외 *
// 1. for1에 있는 문자가 for2에 있는지 돌면서 확인, 있으면 true, 없으면 false
// 2. 끝까지 돌면서 확인
// 3. 빈 문자열 입력받으면 fasle
function hasRepeatedCharacter(str) {
for (i = 0; i < str.length; i++) {
for (j = i + 1; j < str.length; j++) {
if (str[i] === str[j]) {
return true;
} else if (str === "") {
return false;
}
}
}
return false;
}
console.log(hasRepeatedCharacter("asdrty"));
// 문자열을 입력받아 해당 문자열을 처음부터 한 글자(letter)씩 다시 작성하려고 합니다.
// 이 때, 한 글자를 추가할 때마다 부분적으로 완성된 문자열을 전부 이어붙인 문자열을 리턴
// 빈 문자열을 입력받은 경우에는 빈 문자열을 리턴
// `flower' -> 'fflfloflowfloweflower'
// 4자리면 -> [0], [0] [1], [0] [1] [2], [0] [1] [2] [3]
// (for1은 큰 틀: 4번 반복, for2는 작은 틀: 반복시 +1씩)
// 1. for1은 0 ~ length
// 2. for2는 length-1 부터 --로
function makeMarginalString(str) {
let result = "";
for (i = 0; i < str.length; i++) {
for (j = 0; j < i + 1; j++) {
result += str[j];
}
}
return result;
}
console.log(makeMarginalString("flower"));