[프로그래머스/Lv. 0] 평행
내 코드 (일단 틀림)
class Solution {
public int solution(int[][] dots) {
int answer = 0;
// boolean 을 써야 하나..?!
boolean isParallel = false;
for(int i=0 ; i < dots.length ; i++) {
for(int j=0 ; j < dots[i].length ; j++) {
System.out.println(dots[i][j]);
}
}
return answer;
}
}
배열 안의 값을 꺼내서 얘네끼리 직접 비교하는 걸 하려고 했는데,
뭔가 머릿속으론 어떻게 해야지 알겠는데
for문 안에서 구현을 어찌해야할지 생각이 안 나서.....
다른 정답을 봤다..ㅠ
[프로그래머스] 평행
전체 코드 import java.util.*; class Solution { public int solution(int[][] dots) { int answer = 0; float[] line = new float[6]; //기울기 세는 배열 //index로 돌리면서 바로 채움 line에 int index = 0; for(int i = 0; i < 3; i++) { for(int
readyt0g0.tistory.com
이걸 보고 했다.
class Solution {
public int solution(int[][] dots) {
int answer = 0;
float[] line = new float[6];
int idx = 0;
for(int i = 0 ; i < dots.length - 1 ; i++) {
for(int j = i+1 ; j < dots.length ; j++) {
// 기울기
float result = (float)(dots[i][1] - dots[j][1])
/ (float)(dots[i][0] - dots[j][0]);
line[idx] = result;
idx++;
}
}
// 평행 확인
for(int i=0 ; i < line.length - 1 ; i++) {
for(int j = i+1 ; j < line.length ; j++) {
if(line[i] == line[j]) return 1;
}
}
return answer;
}
}
생각해보니까 기울기가 float인 걸 생각을 못 했었고..
위 코드처럼 float로 해줘야 잘 돌아간다....
int로 하면 패스 못함..
그리고 5번째 줄의 값 6은 어떻게 나온 거나면 dots.length * (dots.length - 1) / 2
를 한 값이고,
8-9번째 줄(dots.length - 1, dots.length
)이랑 20-21번째 줄(line.length - 1, line.length
)처럼
이중 for문의 변수값 범위를 잘 설정해줘야한다..!!!!!
그리고 배열 안 값들끼리 서로 어떻게 다 비교하지.. 완전탐색이겠지... 근데 애는 어떻게 해야하지... 싶었는데
이렇게 푼 방식이 브루트 포스 방식이라고..
[알고리즘 기본] 완전 탐색 (브루트 포스 Brute Force)
완전 탐색, 브루트 포스(Brute Force) Brute Force 직역하면 짐승같은 힘, 무식한 힘이라는 뜻이다. 완전 탐색이라는 이름에서도 알 수 있듯이 하나부터 열까지 모든 경우를 다 탐색하는 알고리즘이다.
hawaiian-pizza-it.tistory.com
알고리즘 공부 좀 해야겄다... (딱콩)