본문 바로가기
ComputerScience/알고리즘, 프로그래머스

[Lv.0] 평행(복잡한 계산문제에서의 전략)

by VictorMeredith 2023. 1. 30.

1. 문제

2. 전략

  1) 두개의 점을 이은 선분의 기울기는 (x2-x1)/(y2-y1) 이다.

  2) for 반복문을 이용해서 가능한 선분의 모든 기울기를 newArray에 push한다.

  3) newArray에 중복값이 있으면 평행한 선분을 그을 수 있다.

function solution(dots) {
    var answer = 0;
    let allArr = [];
    for(let i =0; i<dots.length; i++){
        for(let j =0; j<dots.length; j++){
            if(i < j){
                let 기울기 = (dots[j][0] - dots[i][0])/(dots[j][1] - dots[i][1]);
                allArr.push(기울기); //가능한 모든 기울기를 allArr에 넣는다
            }
        }
    }
    let newSet = new Set([...allArr]);
    let newArr = Array.from(newSet) //allArr의 중복값을 제거한다.
      
    if(newArr.length !== allArr.length){ 중복값이 있으면 평행 가능
        answer = 1;
    }

    return answer;
}

3. 알아야할 사항

  1) 전략을 잘 정하고 순차적으로 써내려가면 된다.

  2) 위의 코드는 리팩터링이 안된 더러운 코드이지만, 가독성 좋게 고쳐나가면 좋은 코드가 될 것이다.

댓글