[Level2] 순위검색, 멀쩡한사각형
순위검색 (미완성)
테스트케이스만 통과..
제출 시 실패 및 효율성 통과 못함…
해답 기웃기웃 해보니, 너무 복잡한 자료구조와 알고리즘이어서 내 실력이 더 커지면 돌아오겠다….
졌다…😭
function solution(info, query) {
let answer = [];
let infoArr = [];
let queryArr = [];
for (let i = 0; i < info.length; i++) {
infoArr[i] = info[i].split(" ");
queryArr[i] = query[i].replace(/ and/g, "").split(" ");
}
for (let i = 0; i < info.length; i++) {
let cnt = 0;
for (let j = 0; j < info.length; j++) {
for (let k = 0; k < 4; k++) {
if (queryArr[i][k] == infoArr[j][k] || queryArr[i][k] === "-") {
if (k === 3 && +infoArr[j][4] >= +queryArr[i][4]) {
cnt++;
console.log(infoArr[j][k]);
}
} else break;
}
}
answer.push(cnt);
}
return answer;
}
멀쩡한 사각형
수학….
수학….. 수학 어쩌지?
수학은 어떻게 공부해야할까?
잘린 사각형 갯수가 [w + h - 최대공약수] 라는 식을 참고해서 풀었다..ㅠㅠ
유클리드 호제법은 완벽한 암기를 해야겠다.
function gcd(a, b) {
if (a < b) [a, b] = [b, a];
while (b > 0) {
let temp = b;
b = a % b;
a = temp;
}
return a;
}
function solution(w, h) {
return w * h - (w + h - gcd(w, h));
}
console.log(solution(8, 12));