function solution(dots) {
const xArr = [...dots].sort((a, b) => a[0] - b[0]);
const yArr = [...dots].sort((a, b) => a[1] - b[1]);
let result = 0;
const xParr = ((xArr[1][0] - xArr[0][0]) === (xArr[3][0] - xArr[2][0])
&& (xArr[1][1] - xArr[0][1]) === (xArr[3][1] - xArr[2][1]))
const yParr = ((yArr[1][0] - yArr[0][0]) === (yArr[3][0] - yArr[2][0])
&& (yArr[1][1] - yArr[0][1]) === (yArr[3][1] - yArr[2][1]))
// const slide = dots[i][0] / dots[i][1]
let slide = dots.map(v => v[0] / v[1]);
if (xParr || yParr) result = 1;
if (slide.every(v => v === slide[0])) result = 1;
return result;
}
์ฒ์์ ๊ฐ๊น์ด ๋ ์ ์ฌ์ด์ x์ y ์ ์ฐจ๊ฐ ๊ฐ๊ฐ ๊ฐ์ผ๋ฉด ํํ์ด๋ค ๋ผ๋ ์๊ฐ์์ ์ถ๋ฐํ๋๋ฐ,
solution([[1, 1], [2, 2], [5, 5], [8, 8]]);
solution([[2, 1], [4, 2], [8, 4], [16, 8]]);
๊ทธ๋ ๊ฒ ๋๋ฉด ์ด๋ฐ ์ผ์ด์ค๋ 0์ด ๋์จ๋ค.
๊ทธ๋์ ์๋์ ๊ธฐ์ธ๊ธฐ๋ก ์์ ์ถ๊ฐํด์คฌ๋๋ฐ,
์ถ๊ฐํ์ง ์์์ ๋์ ๊ฐ์ด ์ผ์ด์ค 1, 10๋ฒ์ด ํต๊ณผ๊ฐ ์๋๋ค.
์ฅ ๊ธฐ์ธ๊ธฐ? ๊ธฐ์ธ๊ธฐ๋ฅผ ๋ค ๋น๊ตํด๋ณด๋ฉด ๋๋ค.
์ด ์ ์ ์์ด dots 2์ฐจ ๋ฐฐ์ด์ ๊ทธ๋๋ก ์ฐ๋ ๋๋ฌด ๋ณต์กํด๋ณด์ฌ์,
unction solution(dots) {
let result = 0;
const [a, b, c, d] = dots;
const caseAB = (a[0] - b[0]) / (a[1] - b[1]) === (c[0] - d[0]) / (c[1] - d[1]);
const caseAC = (a[0] - c[0]) / (a[1] - c[1]) === (b[0] - d[0]) / (b[1] - d[1]);
const caseAD = (a[0] - d[0]) / (a[1] - d[1]) === (b[0] - c[0]) / (b[1] - c[1]);
if (caseAB || caseAC || caseAD) result = 1;
return result;
}
a, b, c, d ์ ๊ฐ ์์ดํ ์ ํ ๋นํด์คฌ๋ค.
์ด์ฐจํผ ๋๊ฐ์ฉ ์ง์ง์ด ๊ณ์ฐํ ๊ฐ์ ๋น๊ตํ๋๊ฑฐ๋,
AB
AC
AD
(๋๋จธ์ง๋ ์์์ ์ง์ด๋จ)
์ด๋ ๊ฒ ์ธ๊ฐ์ง ๊ฒฝ์ฐ๋ง ์์๋ด๋ฉด ๋๋ค.
์ด ์ค ๊ธฐ์ธ๊ธฐ๊ฐ ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ํ๋๋ผ๋ ์์ผ๋ฉด result ์ 1๋ฅผ ํ ๋นํ๋ฉด ๋๋ค.
์ด ์ธ๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ๋ค false ๋ผ๋ฉด ํํ์ ์ด ์๋ 0 ์ด return ๋๋ค.