일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 딕셔너리
- 소수
- flask
- timestamp
- FOREIGN KEY
- floor
- 큰 수 나누기
- datetime
- 자료구조
- SUM()
- Dictionary
- convention
- 네이밍
- SUM
- python
- enumerate
- mysql
- project euler
- Codeforces
- 외래키
- itertools
- 에라토스테네스의 체
- list comprehension
- ceil
- BOJ
- 파이썬
- lower_case_table_names
- 2557
- 리스트 컴프리헨션
- 세그먼트 트리
Archives
- Today
- Total
늒네 기록
[BOJ-JS] 1894번 - 4번째 점 본문
평행사변형에는 대각선이 두개 있는데, 각각 선분AC와 선분BD라고 하자.
이때 두 선분의 중점이 일치하는데, 그 말은 원점 O가 있을때 (벡터OA+벡터OC)/2 = (벡터OB+벡터OD)/2라는 뜻이므로, 우리가 세 점 A, B, C를 알고 있을때 D의 좌표를 구하고 싶다면 A + C - B = D를 활용하면 된다는 말이기도 하다.
그런데 우리에게는 이웃한 두 변이 주어지는데, 이때 두 변에 동시에 존재하는 점이 B가 되므로, 주어진 변의 정보를 잘 보고 A, B, C를 구해서 D의 위치를 계산하면 된다.
a=(require('fs').readFileSync(0)+0).split`
`
a.map(i=>{
[a,b,c,d,e,f,g,h]=i.split` `.map(j=>+j)
x=a+e-c;y=b+f-d
if(a==e&&b==f){x=c+g-a;y=d+h-b}
if(a==g&&b==h){x=c+e-a;y=d+f-b}
if(c==e&&d==f){x=a+g-c;y=b+h-d}
if(f)console.log(x.toFixed(3),y.toFixed(3))
})
반응형
'알골 공부 기록 > BOJ' 카테고리의 다른 글
[BOJ-JS] 11558번 - The Game of Death (1) | 2024.05.02 |
---|---|
[BOJ-JS] 13450번 - László Babai (1) | 2024.05.01 |
[BOJ-JS] 16485번 - 작도하자! - ② (0) | 2024.05.01 |
[BOJ-JS] 20365번 - 블로그2 (1) | 2024.04.28 |
[BOJ-JS] 27961번 - 고양이는 많을수록 좋다 (0) | 2024.04.28 |
Comments