νν (with.Java)
βνν (with.Java)β λ¬Έμ μ λνμ¬ μμλ³Έ κΈμ λλ€.
μ½λ© ν μ€νΈ λ¬Έμ λ₯Ό νλ©°, νμλ λ¬Έμ μ λν νκ³ μ λ€λ₯Έ νμ΄ λ°©λ²μ μμ보며, μμκ°κ³ μ ν©λλ€.
λ¬Έμ μ λν΄ λ¨Όμ μμλ³΄κ² μ΅λλ€.
λ¬Έμ
μ λ€ κ°μ μ’νλ₯Ό λ΄μ μ΄μ°¨μ λ°°μ΄ dotsκ° λ€μκ³Ό κ°μ΄ 맀κ°λ³μλ‘ μ£Όμ΄μ§λλ€.
[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
μ£Όμ΄μ§ λ€ κ°μ μ μ λ κ°μ© μ΄μμ λ, λ μ§μ μ΄ ννμ΄ λλ κ²½μ°κ° μμΌλ©΄ 1μ μμΌλ©΄ 0μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄λ³΄μΈμ.
μ νμ¬ν
- dotsμ κΈΈμ΄ = 4
- dotsμ μμλ [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 |
λ¬Έμ μ λν λμ νμ΄
class Solution {
public int solution(int[][] dots) {
int answer = 0;
for(int i =0; i<dots.length;i++) {
float temp =gradient(dots[i],dots[(i+1)%4]);
float temp2 =gradient(dots[(i+2)%4],dots[(i+3)%4]);
if(temp==temp2) {
answer = 1;
}
}
return answer;
}
public static float gradient(int[]a1,int[]a2) {
float denom,mole;
denom= a1[0]-a2[0];
mole= a1[1]-a2[1];
return mole/denom;
}
}
νμ΄ μ€λͺ
solution λ©μλλ μ£Όμ΄μ§ μ λ°°μ΄μΈ dotsλ₯Ό μΈμλ‘ λ°μ΅λλ€.
answer λ³μλ μ¬κ°ν μ¬λΆλ₯Ό λνλ΄λ κ²°κ³Όλ₯Ό μ μ₯ν©λλ€.
μ΄κΈ°μλ 0μΌλ‘ μ€μ λμ΄ μμ΅λλ€.
for 루νλ dots λ°°μ΄μ μνν©λλ€.
μ΄ λ iλ²μ§Έ μ μ κΈ°μ€μΌλ‘ ν΄λΉ μ μ μ μΈν λ€λ₯Έ μΈ κ°μ μ λ€ κ°μ κΈ°μΈκΈ°λ₯Ό λΉκ΅ν©λλ€.
gradient λ©μλλ λ μ μ¬μ΄μ κΈ°μΈκΈ°λ₯Ό κ³μ°ν©λλ€. μ΄λ₯Ό ν΅ν΄ λ μ μ΄ μ΄λ£¨λ μ μ κΈ°μΈκΈ°λ₯Ό ꡬν μ μμ΅λλ€.
λ§μ½ λͺ¨λ λ³μ κΈ°μΈκΈ°κ° κ°λ€λ©΄ (tempμ temp2κ° κ°λ€λ©΄) answerλ₯Ό 1λ‘ μ€μ ν©λλ€.
λͺ¨λ 루νλ₯Ό λ§μΉ λ€μ answer κ°μ λ°νν©λλ€.
μ£Όμ΄μ§ μ λ€μ μ΄μ©νμ¬ μ¬κ°νμ μ΄λ£¨λμ§ νμΈνλ κ°λ¨ν λ°©λ²μ μ 곡ν©λλ€.
μ£Όμ΄μ§ λ¬Έμ μ λ°λΌ μ μ κ°μμ λ°°μ΄μ ννκ° λ³κ²½λ μ μμ§λ§, ν΄λΉ λ©μλλ₯Ό μ¬μ©νμ¬ λ€κ°νμ ννλ₯Ό νμ ν μ μμ΅λλ€.