eaz_coding

[Programmers] 점 찍기(Python, Javascript, Java) 본문

eaz_algorithm

[Programmers] 점 찍기(Python, Javascript, Java)

eaz_silver 2024. 7. 1. 09:21

문제

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

 

프로그래머스

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

programmers.co.kr


풀이

Python

import math

def solution(k, d):
    answer = 0
    i = 0
    
    while i <= d:
        answer += int(math.sqrt(d*d-i*i)) // k + 1
        i += k
    
    return answer

 

Javascript

function solution(k, d) {
    var answer = 0;
    let i = 0;
    while (i <= d){
        answer += Math.floor(Math.sqrt(d*d - i*i) / k) + 1;
        i += k;
    }
    
    return answer;
}

 

Java

자바는 나누기 연산을 수행할 때, 값이 실수인지 정수인지에 따라서 값이 다르게 나타난다.

따라서 d*d의 값을 같은 타입은 long으로 맞춰주는 작업을 수행해야 한다.

class Solution {
    public long solution(int k, int d) {
        long answer = 0;
        long i = 0;
        
        while (i <= d) {
            answer += Math.floor(Math.sqrt((long)d*d-i*i) / k) + 1;
            i += k;
        }
        return answer;
    }
}