자료구조/알고리즘 (JavaScript ver.) 11일차

🥨 Collection

🥨 Map

  • object 보다 다양한 자료형을 key로 제공

  • 데이터에 접근하기 위해 obj.key 또는 obj[key] 같은 구문을 사용할 수 없음

  • 객체의 값을 가져오기 위해서는 map.get(key) 구문 이용

  • .keys()
    key retrun

  • .values()
    value retrun

  • iterable 하여 for of 구문 사용가능

  • 어떤 메소드도 호출하지 않고 객체 그대로 넘기게 되면 [key,value] 형태로 return = entires() 메소드랑 같은역할

🥨 두 수 사이 숫자 모두 구하기

A1. 무조건 x보다 y가 크게 들어오게 만들기

  • x,y 의 대소 구별하면 for문을 두번 쓰게됨
    애초에 x보다 y가 크게 들어오게 만들기(무조건 x보다 y가 크게 만들기)

  • 두변수 교환
    임의의 변수를 하나 만들어서 저장해놓고 서로 바꾸기 그렇지 않으면 x = y 저장해버렸을 때 x 변수값이 날아가기때문

if (x > y) {
    let t = x;
    x = y;
    y = t;
}
  
for (let i = x; i <= y; i++) {
    result.push(i)
}

A2. 자바스크립트에서만 제공하는 문법 - 대칭해서 하나씩 넣기

if (x > y) {
    [x,y] = [y,x]
}
for (let i = x; i <= y; i++) {
    result.push(i)
}

🥨 평균 구하기

A1.

// 1. 반 인원만큼 시험 점수를 더한다.
  for (let i = 0; i < score.length; i++) {
    average += score[i];
  }

  // 2. 반 인원 수만큼 더한 점수를 나눠 평균을 구한다.
  average /= score.length;

  // 3. 소수 둘째자리까지 표현되도록 한다.(반올림 처리)
  average = average.toFixed(2);
  • sum += score[i] 로 표현하는 것처럼
    average /= score.length 으로 표현가능
    단 변수가 미리 선언되어 있어야함

🥨 최대값 구하기

A1. for문 안에 if문을 돌려서 max를 지속적으로 업데이트 & 동시에 인덱스 저장

  • max 라는 변수를 먼저 0으로 초기화 해둠
  • 인덱스값도 같이 저장할 변수도 미리 선언
  • max보다 크면 그 값을 max에 저장해서 최대값 계속 업데이트 해나감
    function answer(employee) {
     let employee_id;
     let max = 0;
     
     for (let i = 0; i < employee.length; i++) {
       if (employee[i] > max) {
         max = employee[i];
         employee_id = i + 1;
       }
     }
     return employee_id;
    }

좋은 웹페이지 즐겨찾기