Lv 2. 점찍기

2024. 9. 12. 17:36·Algorithm & Data Structures/Programers

https://school.programmers.co.kr/learn/courses/30/lessons/140107

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

글로는 이해하기 너무 힘든 본인.. 직접 다 그렸다..

// x와 y축으로 1자로 쫙 그리는건 쉽다.
// 중요한건 1자로 그린 후 최대값 최솟값을 정해서 싹다 거리재고 d랑비교 해야한다는거 

// x축으로 쭉가면서 찍은점들 거리 disList 확보
// disList * 2 - 1 이 x,y축 점들 갯수
// 즉 answer.
// disList 정렬 
// disList에서 하나씩 빼가면서 싹다 
// 거리비교하고 되면 answer++;
// 안되면 continue;



// import java.util.*;

// class Solution {
//     List <Integer> disList = new ArrayList<>();
//     long answer = 0;
//     private void findCorrectCombination(int d){
//         Collections.sort(disList);
//         for(int n : disList){
//             for(int a: disList){
//                 if(Math.pow(n,2)+Math.pow(a,2)>Math.pow(d,2)) //거리넘으면
//                     break;
//                 answer++;
//             }
//         }
//     }
//     public long solution(int k, int d) {
//         for(int i = 1 ; i * k <= d ; i++)
//             disList.add(i*k);
//         answer = disList.size()*2 + 1;
//         findCorrectCombination(d);
//         return answer;
//     }
// }

// 시간복잡도 O*O 로 인한 
// 시간초과 발생
// 보다 수학적인 접근 
import java.util.*;

class Solution {
    private long calculate(int x, int k, int d) {
        long xDist = x * (long)k;
        return (long)Math.sqrt((long)d * d - xDist * xDist) / k;
    }

    private long count(int k, int d) {
        long count = 0;
        for (int x = 0; x * k <= d; x++) {
            count += calculate(x, k, d) + 1; // 0 포함
        }
        return count;
    }

    public long solution(int k, int d) {
        return count(k, d);
    }
}

'Algorithm & Data Structures > Programers' 카테고리의 다른 글

Lv 3. 이중우선순위큐  (0) 2024.09.18
Lv 2. 후보키  (2) 2024.09.16
Lv 2. 광물 캐기  (0) 2024.09.10
Lv 2. 문자열 압축  (0) 2024.09.09
Lv 2. 멀쩡한 사각형  (2) 2024.09.08
'Algorithm & Data Structures/Programers' 카테고리의 다른 글
  • Lv 3. 이중우선순위큐
  • Lv 2. 후보키
  • Lv 2. 광물 캐기
  • Lv 2. 문자열 압축
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (304) N
      • Algorithm & Data Structures (230) N
        • BOJ (89) N
        • SWEA (1)
        • Programers (136)
        • Data Structures (3)
      • DB (21) N
        • SQL (15) N
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    dfs
    투포인터
    이진탐색
    PriorityQueue
    BFS
    구현
    programmers
    백트래킹
    스택
    백준
    Union-Find
    algorithm
    Dijkstra
    Java
    Stack
    이분탐색
    DynamicProgramming
    dp
    유니온파인드
    프로그래머스
    후위순회
    binarySearch
    동적계획법
    위상정렬
    baekjoon
    다익스트라
    경로압축
    전위순회
    unionfind
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
Lv 2. 점찍기
상단으로

티스토리툴바