π νλ‘κ·Έλλ¨Έμ€ 120875 : νν - Javascript
2023-03-03
λ¬Έμ μ€λͺ
μ λ€ κ°μ μ’νλ₯Ό λ΄μ μ΄μ°¨μ λ°°μ΄ dots
κ° λ€μκ³Ό κ°μ΄ 맀κ°λ³μλ‘ μ£Όμ΄μ§λλ€.
- [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
μ£Όμ΄μ§ λ€ κ°μ μ μ λ κ°μ© μ΄μμ λ, λ μ§μ μ΄ ννμ΄ λλ κ²½μ°κ° μμΌλ©΄ 1μ μμΌλ©΄ 0μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄λ³΄μΈμ.
μ νμ¬ν
dots
μ κΈΈμ΄ = 4dots
μ μμλ [x, y] ννμ΄λ©° x, yλ μ μμ λλ€.- 0 β€ x, y β€ 100
- μλ‘ λ€λ₯Έ λκ° μ΄μμ μ μ΄ κ²ΉμΉλ κ²½μ°λ μμ΅λλ€.
- λ μ§μ μ΄ κ²ΉμΉλ κ²½μ°(μΌμΉνλ κ²½μ°)μλ 1μ return ν΄μ£ΌμΈμ.
- μμμ λ μ μ μ΄μ μ§μ μ΄ xμΆ λλ yμΆκ³Ό ννν κ²½μ°λ μ£Όμ΄μ§μ§ μμ΅λλ€.
μ μΆλ ₯ μ
dots | result |
---|---|
[[1, 4], [9, 2], [3, 8], [11, 6]] | 1 |
[[3, 5], [4, 1], [2, 4], [5, 10]] | 0 |
μμ #1
μ [1, 4], [3, 8]μ μκ³ [9, 2], [11, 6]λ₯Ό μ΄μΌλ©΄ λ μ λΆμ ννν©λλ€.μμ #2
μ μ μ΄λ»κ² μ°κ²°ν΄λ νννμ§ μμ΅λλ€.
νμ΄ κ³Όμ
λ¨Όμ μ£Όμ΄μ§ 4κ°μ μ μ a, b, c, dλΌκ³ νλ©΄ λ μ μ© μλ λ°©λ²μ μλμ κ°μ΅λλ€.
- [a, b], [c, d]
- [a, c], [b, d]
- [a, d], [b, c]
μ΄ μΈμλ λ μ μ© λ¬Άλ λ°©λ²μ΄ μκΈ° λλ¬Έμ μ΄ 3κ°μ§ κ²½μ° μ€ νλλΌλ λ μ μ΄ νννλ©΄ 1μ λ°ννλ©΄ λ©λλ€. λ μ μ κΈ°μΈκΈ°κ° κ°μΌλ©΄ ννν κ²μ΄κΈ° λλ¬Έμ μ μΌλ‘ λ§λ€μ΄μ§ μ§μ μ κΈ°μΈκΈ°λ₯Ό ꡬν΄μ νμΈνμ΅λλ€.
function solution(dots) {
//λ μ μ μΈλ±μ€κ° μ£Όμ΄μ§λ©΄ λμ μ μ΄μ μ§μ μ κ°λλ₯Ό λ°ννλ ν¨μ
const angle = (a, b) => (dots[a][0] - dots[b][0]) / (dots[a][1] - dots[b][1]);
//μ§μ μ λ§λ€ μ μλ λͺ¨λ λ°©λ²μ μΈλ±μ€λ‘ νννκ³ , λͺ¨λ νμΈ
for (const [a1, b1, a2, b2] of [
[0, 1, 2, 3],
[0, 2, 1, 3],
[0, 3, 1, 2]
]) {
//λ§μ½ λ μ§μ μ κ°λκ° κ°λ€λ©΄ 1μ λ°ν
if (angle(a1, b1) === angle(a2, b2)) {
return 1;
}
}
//λ μ§μ μ κ°λκ° κ°μ μ‘°ν©μ΄ μλ κ²½μ° 0μ λ°ν
return 0;
}
μ½λ κ°μ
dots
μΈμ μ체λ₯Ό νμ΄μ λμΌνκ² a,b,c,dλ‘ λ°μΌλ©΄ μ λ°μ μΈ μ½λλ₯Ό λ κ°λ¨νκ² λ§λ€ μ μμ΅λλ€.
//λ μ μ μ΄μ μ§μ μ κ°λλ₯Ό λ°ννλ ν¨μ
const angle = (a, b) => (a[0] - b[0]) / (a[1] - b[1]);
function solution([a, b, c, d]) {
//μ§μ μ λ§λ€ μ μλ λͺ¨λ λ°©λ²μ νμΈ
for (const [a1, b1, a2, b2] of [
[a, b, c, d],
[a, c, b, d],
[a, d, b, c]
]) {
//λ§μ½ λ μ§μ μ κ°λκ° κ°λ€λ©΄ 1μ λ°ν
if (angle(a1, b1) === angle(a2, b2)) {
return 1;
}
}
//λ μ§μ μ κ°λκ° κ°μ μ‘°ν©μ΄ μλ κ²½μ° 0μ λ°ν
return 0;
}