JS 알고리즘 7주차

선민·2023년 5월 25일
0

JS_Programmers

목록 보기
5/8

7주차

1. 등수 매기기 ⭐️

https://school.programmers.co.kr/learn/courses/30/lessons/120882

function solution(score) {
    let answer = new Array(score.length).fill(1)
    
    const avg = score.map(e => (e[0]+e[1])/2); 

    for(let i = 0; i < avg.length; i++){
        for(let j = 0; j <avg.length; j++){
            if(avg[i]<avg[j]) answer[i]++;
        }
    }
    
    return answer;
}

2. 저주의 숫자 3

https://school.programmers.co.kr/learn/courses/30/lessons/120871

function solution(n) {
    let a = 0
    for(let i = 1 ; i <= n ; i ++) {
        a++
        // 3이 들어가지 않으며, 3의 배수 또한 아닌 경우까지 반복
        while(a.toString().includes('3') || a%3 === 0) {
            a++
        }
    }
    return a
}

3. 다항식 더하기 ⭐️

https://school.programmers.co.kr/learn/courses/30/lessons/120863

function solution(polynomial) {
    let answer = ["",0];
    let varX = 0;
    let arr = polynomial.split("+ ").map(e => e.trim());

    
    for(let i = 0; i< arr.length; i++){
        if(!arr[i].includes("x")){
            arr[i] = Number(arr[i]);
            answer[1] += arr[i]
        }
        
        else if (arr[i] ==="x"){
            varX++;
        }
        else {
            let tmp = Number(arr[i].split("x")[0]);
            varX += tmp;          
        }
    }
    
    varX === 1 ? answer[0] = "x" : answer[0] = varX+"x";
    
    if(answer[0] === "0x") return String(answer[1]);   
    
    if(answer[1] === 0) return answer[0];
    
    if(answer[0] === "" && answer[1] === 0) return "0";
    
    else return answer.join(" + ")
}

4. 안전지대

https://school.programmers.co.kr/learn/courses/30/lessons/120866

❓❓


5. 겹치는 선분의 길이 ⭐️

https://school.programmers.co.kr/learn/courses/30/lessons/120876

function solution(lines) {
  var answer = 0;
  let lineMap = new Array(200);  // 선분들이 놓일 공간
  lineMap.fill(0);

  for (let i = 0; i < 3; i++) {
    let left = lines[i][0];
    let right = lines[i][1];

    for (let j = left; j < right; j++) {
      lineMap[j + 100] += 1;
    }
  }

  for (let i in lineMap) {
    if (lineMap[i] > 1) {
      answer += 1;
    }
  }

  return answer;
}
  • let newArr = []; 이 방법 뿐만 아니라, let newArr = new Array(배열길이);로도 배열 선언 및 할당 가능
  • .fill(원소): 해당 원소로 배열을 채운다
profile
안녕하세요ꯁ

0개의 댓글