Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
Tags
- Counting
- 코테
- simulation
- Stack
- Binary Search
- greedy
- SQL
- 자바
- array
- Method
- geometry
- dynamic programming
- Math
- Number Theory
- Binary Tree
- Data Structure
- java
- hash table
- implement
- Class
- sorting
- Matrix
- database
- 코딩테스트
- bit manipulation
- two pointers
- string
- 구현
- 파이썬
- Tree
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.0] 평행 본문
1. Input
1) 점 네 개의 좌표를 담은 2차원 배열 dots
2) dots의 구성: {{x1, y1}, {x2, y2}, {x3, y3}, {x4, y4}}
2. Output
1) 주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 반환
3. Constraint
1) 0 ≤ dots의 원소 ≤ 100
2) dots의 길이 = 4
3) dots의 원소의 길이 = 2
4) dots의 원소는 [x, y] 형태이며 x, y는 정수
5) 서로 다른 두개 이상의 점이 겹치는 경우는 없다.
6) 두 직선이 겹치는 경우(일치하는 경우)에도 1을 반환
7) 임의의 두 점을 이은 직선이 x축 또는 y축과 평행한 경우는 주어지지 않는다.
4. Example
Input: dots={{1,4},{9,2},{3,8},{11,6}} -> Output: 1
설명:
{1,4},{3,8}을 이은 직선과 {9,2},{11,6}을 이은 직선이 평행이다.
5. Code
1) 첫 코드(2022/11/02)
// 짝짓는 경우는 총 6가지
// (0,1) (0,2) (0,3) (1,2) (1,3) (2,3)과
// (2,3) (1,3) (1,2) (0,3) (0,2) (0,1)이 짝이 됨
// (0,1) (0,2) (0,3) (1,2) (1,3) (2,3)의 기울기를 구해서
// 0번째==5번째, 1번째==4번째, 2번째==3번째인지 확인
int answer = 0;
double[] a = new double[6];
int index = 0;
for(int i=0 ; i<dots.length-1 ; i++){
for(int j=i+1 ; j<dots.length ; j++){
a[index++] = (double)(dots[i][1]-dots[j][1])/(dots[i][0]-dots[j][0]);
} // for j
} // for i
for(int i=0 ; i<a.length/2 ; i++)
if(a[i]==a[a.length-1-i]){
answer = 1;
break;
}
return answer;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.0] 문자열 밀기 (0) | 2022.11.09 |
---|---|
[프로그래머스/Lv.0] 유한소수 판별하기 (0) | 2022.11.09 |
[프로그래머스/Lv.0] 삼각형의 완성조건 (2) (0) | 2022.11.09 |
[프로그래머스/Lv.0] 숨어있는 숫자의 덧셈 (2) (0) | 2022.11.09 |
[프로그래머스/Lv.0] 종이 자르기 (0) | 2022.11.09 |