ComputerScience/알고리즘, 프로그래머스
[Lv.0] 평행(복잡한 계산문제에서의 전략)
VictorMeredith
2023. 1. 30. 17:41
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) 위의 코드는 리팩터링이 안된 더러운 코드이지만, 가독성 좋게 고쳐나가면 좋은 코드가 될 것이다.