🌌 Day 4 Algorithm Review

JBΒ·2022λ…„ 3μ›” 17일
0

Algorithms

λͺ©λ‘ 보기
5/12

🌚 Replit

for_in

const obj = {
  title: 'The Title',
  name: 'Jane',
  contents: 'Nothing to say'
};

for (let key in obj) {
  if ( key === "title" || key === "name" ){
    obj[key] = obj[key].toUpperCase()
    // obj[key], 즉 value에 λ‹€μ‹œ 값을 ν• λ‹Ήμ‹œμΌœμ•Ό 함
  }
}

console.log(obj)
//{ title: 'THE TITLE', name: 'JANE', contents: 'Nothing to say' }

for_of

// ======= 1 =======
const obj = {
  title: 'The Title',
  name: 'Jane',
  contents: 'Nothing to say'
};

const arr = Object.entries(obj)
for (let element of arr){
  console.log(element[0])
  // 'title'
  // 'name'
  // 'contents'
  if (element[0]==="title" || element[0]==="name"){
    element[1] = element[1].toUpperCase()
    
    console.log(element[1])
    // 'THE TITLE'
	// 'JANE'
  }
}

console.log(arr);
// ======= 2 =======
const arr = [11, 22, 33, 44, 55];
let sum = 0;

for (let element of arr){
  sum += element
}

//while문을 μ΄μš©ν•œλ‹€λ©΄?
// let i = 0;
// while (i< arr.length){
//   sum += arr[i]
//   i += 1
// }

console.log(sum); 
// 165

🌝 Class

🌜 for()

for (let i = 0; i<3; i++){
  console.log("hi")
}
//result: 'hi'
	   // 'hi'
       // 'hi'

let i = 0
μ΅œμ΄ˆμ‹: λ°˜λ³΅λ¬Έμ„ 처음 μ‹€ν–‰ν•  λ•Œ μ„ μ–Έ / μ–΄λ””μ„œλΆ€ν„° μ‹œμž‘ν•˜λŠ”μ§€λ₯Ό κ²°μ •ν•˜λŠ μ‹œμž‘μ 
--> iλ₯Ό 0λΆ€ν„° μ‹œμž‘ν•˜κ² λ‹€

i<3
쑰건식: λ°˜λ³΅λ¬Έμ„ μ‹€ν–‰ν•˜λŠ” 쑰건을 μ„€μ • / ν•΄λ‹Ή 쑰건식이 trueμΌλ•Œλ§Œ λ‘œμ§μ„ μ‹€ν–‰
--> iκ°€ 3이 되기 μ „κΉŒμ§€λΌλŠ” 쑰건을 κ±°λŠ” 것

i++
증감식: λ°˜λ³΅λ¬Έμ„ μ‹€ν–‰ν•  λ•Œλ§ˆλ‹€ μ΅œμ΄ˆμ‹μ„ 증감 / 반볡문의 μ‹€ν–‰ 횟수λ₯Ό μ‘°μ ˆν•  수 μžˆλ‹€
--> iλ₯Ό ν•˜λ‚˜μ”© μ˜¬λ¦¬κ² λ‹€

break

for (let i = 0; i < 5; i++){
	if (i===2){
    break
  }
  console.log(i)
}

//result: 0
	   // 1
  • for문이 iκ°€ 2κ°€ λ˜μ—ˆμ„λ•Œ 쀑단됨 (전체 쀑단)

continue

for (let i = 0; i < 5; i++){
	if (i===2){
    continue
  }
  console.log(i)
}

//result: 0
	   // 1
	   // 3
	   // 4
  • μ›ν•˜λŠ” κ΅¬κ°„μ—μ„œ κ±΄λ„ˆλ›°λŠ”κ²ƒ (ꡬ간 쀑단)

for -in

  • 객체λ₯Ό λ°˜λ³΅ν•  수 μžˆλ‹€
  • μ‚¬μš©λ²”μœ„: λ¬Έμžμ—΄, λ°°μ—΄, 객체
str = 'abc'
for (let key in str){
  console.log(key)
  // '0' '1' '2' 좜λ ₯
  // λ¬Έμžμ—΄μ€ λ°°μ—΄κ³Ό λ™μΌν•˜κ²Œ 인덱슀 κ°’μœΌλ‘œ 좜λ ₯이 κ°€λŠ₯함
  console.log(str[key])
  // 'a' 'b' 'c'
  // str에 λŒ€ν•œ keyλ₯Ό 뽑아와달라고 ν•˜λŠ”κ±°κΈ° λ•Œλ¬Έ
}
obj = {
  name: "철수",
  age: 12
}

for (let key in obj){
  console.log(obj[key])
}

//result: "철수"
		// 12

for -of

  • 각각의 μš”μ†Œλ“€μ„ κ°€μ Έμ˜¬ 수 μžˆλ‹€
  • 속도가 μ’€ λŠλ €μ„œ νš¨μœ¨μ„± λ°©λ©΄μ—μ„œλŠ” 쒋지 μ•ŠμŒ
  • μ‚¬μš©λ²”μœ„: λ¬Έμžμ—΄, λ°°μ—΄
str = "abc"
for (let data of str){
  console.log(data)
}
// result: 'a'
				// 'b'
				// 'c'

for (let i = 0; i<str.length; i++){
  console.log(str[i])
}
// result: 'a'
				// 'b'
				// 'c'

forEach

  • λ°°μ—΄μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλ‹€
  • μ‚¬μš©λ²”μœ„: λ°°μ—΄
// =========== λ°°μ—΄ μ•ˆμ— κ°’ 좜λ ₯ν•˜κΈ° ===========
arr = ["a","b","c"]

arr.forEach(function(el){
	console.log(el)
})
//result: 'a'
		 	 // 'b'
			 // 'c'

arr.forEach(el => {
  console.log(el)
})
//result: 'a'
		 	 // 'b'
			 // 'c'
// =========== λ°°μ—΄ μ•ˆμ— μžˆλŠ” 수 μ „λΆ€ λ”ν•˜κΈ° ===========
arr = [1,2,3,4,5,6,7,8,9,10]

answer = 0

arr.forEach(el => {
  answer = answer + el
})
console.log(answer) // 55

πŸŒ› while()

  • μ΅œμ΄ˆμ‹, 쑰건식, 증감식이 λΆ„ν• λ˜μ–΄μžˆλ‹€
  • μ‚¬μš©λ²”μœ„: for와 동일
let count = 0;
while(count !== 5){
  console.log(count)
  count++
}

//result: 0
// 1
// 4
// 2
// 3
// 4

πŸƒ 숫자 λ”ν•˜κΈ°

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

sum(5) // 15

πŸƒ νŠΉμ • λ¬Έμžμ—΄ μ„ΈκΈ°

  • λ¬Έμžμ—΄λ„ λ°°μ—΄μž„ (μΈλ±μŠ€κ°’ λ°›μ•„μ˜€κΈ°κ°€ κ°€λŠ₯ν•˜λ‹€λŠ” 것)
function countLetter(str){
	let count = 0;
  
  for (let i = 0; i<str.length; i++){
    if (str[i]==="a" || str[i]==="A"){
      // console.log(str[i], i)
      count++
    }
  }
  return count
}

countLetter("I am from Korea") //2
countLetter("A day without laughter is a day wasted.") //6
// ============ or μ „λΆ€ λ‹€ μ†Œλ¬Έμžλ‘œ λ°”κΏ”μ„œ 확인해내기 ============
// 검증 쑰건이 μ€„μ–΄λ“œλŠ” νš¨μœ¨μ„± 증가

function countLetter(str){
	let count = 0;
  str = str.toLowerCase() // μ†Œλ¬Έμžλ‘œ λ³€ν™˜: toLowerCase()
  
  for (let i = 0; i<str.length; i++){
    if (str[i]==="a"){
      count++
    }
  }
  return count
}

countLetter("I am from Korea") //2
countLetter("A day without laughter is a day wasted.") //6

πŸƒ λ¬Έμžμ—΄ μ‚½μž…

function makeNumber(num){
  let str = ''
  for (let i = 1; i<=num; i++){
    str += String(i)
    if (i !== num){	//i와 num(즉 λ§ˆμ§€λ§‰ 수)와 동일할 λ•ŒλŠ” hyphen μ œμ™Έ
      str += "-"
    }
    
  } 
  return str
}

makeNumber(5) // '1-2-3-4-5'
makeNumber(7) // '1-2-3-4-5-6-7'

πŸƒ ν™€μˆ˜ λ¬Έμžμ—΄

function makeOdd(num){
  let str = ''
  for (let i = 1; i<= num; i++){
    if (i % 2 === 1){
      str += i
    }
  }
  return str
}

makeOdd(5) // '135'
makeOdd(7) // '1357'

🌿 κ°€μž₯ 큰 수 μ°ΎκΈ°

function bigNum(str){
  let biggest = Number(str[0])
  for (let i = 0; i<str.length; i++){
          console.log(str[i], biggest)
    if (biggest < Number(str[i])){
          biggest = Number(str[i])
    }
  }
  return biggest
}

bigNum("129638") // 9 
profile
두비두λ°₯λ°₯

0개의 λŒ“κΈ€