프로그래머스 점찍기 (Java)

배인성·2022년 12월 14일
3

프로그래머스

목록 보기
36/55
post-thumbnail

링크

문제 링크

회사 생활을 즐긴다고 글을 정말 오랜만에 쓰는 것 같다

문제 설명

제한 사항

입출력 예 설명

풀이

  1. 머릿속에서 문제를 그려봤는데, 반지름 d인 원이 있음
    1.1 x,y축 포함 "1사분면에서 점이 얼마나 찍히는가?"를 묻더라
  2. 좌표평면위의 원에다가 x = k라는 직선을 그어서 만나는 점(소수점 털어내야함) 밑으로 k만큼 거리를 둔 점이 얼마나 찍힐 수 있는가를 구하면 됨
  3. 아 ㅋㅋ 근데 제곱근 구할때 long으로 형 변환을 해줘야함!!

요즘 회사일을 즐긴다고 블로그를 오랫동안 쉬었네..ㅎ 확실히 한창 포스팅할땐 재밌었는데 좋았던 취미를 놓치고 싶지 않아서 다시 시작할려고한다!

문제는 어렵진 않았다.

근데 이번 문제로 알게된 사실이 하나 있다.

long 범위의 숫자를 다루고 싶을 때

long = int * int ; 로 long에다가 값을 집어넣으면 안된다 ㅋㅋ

곱해진 숫자는 여전히 int라는 그릇에 다 못담긴채로 long 변수에 담기더라!

long = (long) int * int 로 캐스팅을 해주자!

뭔가 적어놓고나니까 아주 당연스럽긴한데 뭐.. ㅋㅋㅋㅋ 한번 틀려야 아냐 왴ㅋㅋ

코드

import java.util.*;
class Solution {
    public long solution(int k, int d) {
        long answer = 0;
        for(int i = 0; i <= d; i += k) 
        {
            long dd = (long) d * d;
            long ii = (long) i * i;
            int top = (int) Math.sqrt(dd - ii);
            answer += (top / k) + 1;
        }
        return answer;
    }
}
profile
부지런히 살자!!

1개의 댓글

comment-user-thumbnail
2022년 12월 14일

회사생활 즐기시는거 축하드려요!! 좋아하는 취미도 화이팅이이이잉♥️

답글 달기