[Programmers] 평행 (JAVA)

2024. 11. 19. 23:14·코테/Algorithm
728x90
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

풀이

 

조합코드를 짜서 부분집합을 만들어줬다.

깊은 복사와 얕은 복사 때문에 시간을 잡아먹은 문제

 

 

전체코드
import java.io.*;
import java.util.*;

class Solution {
    static HashMap<int[], Integer> map = new HashMap<>();
    public int solution(int[][] dots) {
        for(int i=0; i<dots.length/2; i++){
            boolean visited[] = new boolean[dots.length];
            int tmp[] = new int[dots.length];
            visited[i] = true;
            tmp[0] = i;
            Combi(1, i, tmp, dots, visited);
        }
        int answer = 0;
        for(int[] key : map.keySet()){
            double firstX = dots[key[0]][0] - dots[key[1]][0];
            double firstY = dots[key[0]][1] - dots[key[1]][1];
            double secondX = dots[key[2]][0] - dots[key[3]][0];
            double secondY = dots[key[2]][1] - dots[key[3]][1];
            double first = firstY / firstX;
            double second = secondY / secondX;
            if(first == second){
                answer++;
            }
            if(answer >= 2){
                answer = 1;
            }
        }
        return answer;
    }
    static void Combi(int depth, int idx, int[] tmp, int[][] dots, boolean[] visited){
        if(depth == 4){
            int arr[] = tmp.clone();
            map.put(arr, 1);
            
            return;
        }
        for(int i=0; i<dots.length; i++){
            if(!visited[i]){
                tmp[depth] = i;
                visited[i] = true;
                Combi(depth+1, i, tmp, dots, visited);
                visited[i] = false;
            }
        }
    }
}
728x90

'코테 > Algorithm' 카테고리의 다른 글

[프로그래머스] PCCP 모의고사 1번. 외톨이 알파벳 (JAVA)  (0) 2024.11.24
[Programmers] PCCP 기출문제 충돌위험 찾기 (JAVA)  (0) 2024.11.21
[Programmesr] 모의고사 (JAVA)  (0) 2024.11.11
[Programmers] 최대공약수와 최소공배수 (JAVA)  (0) 2024.11.10
[Programmers] 예산 (JAVA)  (0) 2024.11.10
'코테/Algorithm' 카테고리의 다른 글
  • [프로그래머스] PCCP 모의고사 1번. 외톨이 알파벳 (JAVA)
  • [Programmers] PCCP 기출문제 충돌위험 찾기 (JAVA)
  • [Programmesr] 모의고사 (JAVA)
  • [Programmers] 최대공약수와 최소공배수 (JAVA)
DROPDEW
DROPDEW
💻 Developer | 기록하지 않으면 존재하지 않는다
  • DROPDEW
    제 2장 1막
    DROPDEW
  • 전체
    오늘
    어제
    • Dev (413) N
      • App·Android (1)
      • BE (44)
        • HTTP 웹 기본 지식 (8)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (12)
        • 스프링부트와 JPA 활용 (11)
        • 스프링부트 시큐리티 & JWT (0)
        • PHP (6)
      • FE·Client (23)
        • HTML (1)
        • React (19)
        • Unity (1)
      • Data (13) N
        • AI (5) N
        • Bigdata (6)
        • Database (1)
        • 빅데이터분석기사 (0)
      • Infra (0)
      • Activity (0)
        • Education (0)
        • Intern (0)
        • 리모트 인턴십 6기 (0)
        • 구름톤 유니브 4기 (0)
        • SW교육기부단 15기 (0)
      • CS (8)
      • 취준 (13)
        • 자격증 (4)
        • 인적성·NCS (6)
        • 코테·필기·면접 후기 (3)
      • 코테 (270)
        • Algorithm (222)
        • SQL (35)
        • 정리 (13)
      • 인사이트 (27)
        • 회고 (0)
        • 금융경제뉴스 (7)
        • 금융용어·지식 (2)
        • 북마크 (7)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    그래프탐색
    구현
    누적합
    최단경로
    그래프이론
    백준
    투포인터
    수학
    다이나믹프로그래밍
    정렬
    너비우선탐색
    그리디알고리즘
    매개변수탐색
    오블완
    브루트포스 알고리즘
    문자열
    시뮬레이션
    자료구조
    티스토리챌린지
    이분탐색
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
DROPDEW
[Programmers] 평행 (JAVA)
상단으로

티스토리툴바