본문 바로가기

프로그래머스

평행

728x90

평행한다는것은 기울기가 같다고 생각을 해서 풀었다..

자꾸 list선언할때 new를 까먹는다... 아직 자바랑 친하지 않은 증거인것같네요 ㅠㅠ

63.6점코드

import java.util.List;
import java.util.ArrayList;

class Solution {
    static public int solution(int[][] dots) {
        int answer = 0;
        boolean flag= false;
        List<Double>list = new ArrayList<>();
        for (int i = 0; i < dots.length-1; i++) {

            for (int j = i+1; j < dots.length; j++) {
                if(flag)
                {
                    return 1;
                }
                double result = (dots[i][1]-dots[j][1])/(dots[i][0]-dots[j][0]);

                if(list.contains(result))
                {
                    flag = true;
                }
                else
                {
                    list.add(result);
                }
            }
        }
        return answer;
    }
}

result에 대입하는값을 double로 하니깐 81.8점이 나왔다... 100점 어떻게 맞는것일까...

 

100점코드 flag 확인하는 위치를 바꿨는데 돼었다... 뭐선일이고??

 

생각해봤더니 마지막 엣지케이스에서 flag확인이 안될수 있다고 생각했다.

import java.util.List;
import java.util.ArrayList;

class Solution {
    static public int solution(int[][] dots) {
        int answer = 0;
        boolean flag= false;
        List<Double>list = new ArrayList<>();
        for (int i = 0; i < dots.length-1; i++) {
            for (int j = i+1; j < dots.length; j++) {

                double result = (double)(dots[i][1]-dots[j][1])/(dots[i][0]-dots[j][0]);
                if(list.contains(result))
                {
                    flag = true;
                }
                else
                {
                    list.add(result);
                }
                if(flag)
                {
                    return 1;
                }
            }
        }
        return answer;
    }
}
728x90

'프로그래머스' 카테고리의 다른 글

1차 비밀지도 카카오  (0) 2022.12.11
문자열 내마음대로 정렬하기  (0) 2022.12.11
안전지대  (0) 2022.12.08
OX퀴즈  (0) 2022.12.08
영어가 싫어요  (0) 2022.12.06