-
[프로그래머스] 점 찍기알고리즘 2023. 7. 11. 17:18728x90
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/140107
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 접근
1. 처음에는 " y = -x + d " 라고 잘못 이해해서 시간좀 낭비했다
2. 원점과 하나의 좌표 거리 -> x**2 + y**2 <= r**2 (여기서는 d**2) 를 이용해야 한다
3. 다만 조심할 것은 x좌표든, y좌표든 k의 간격만큼씩 이동한다는 점이다
-> test case1번 같은 경우 k가 2다 보니까 (2,2)는 되는데 (2,1)은 안된다. 이 점 때문에 math.floor한 값을 / k를 해준것이다.
4. 결론, 핵심은 2번을 이용하면서, k간격씩 이동함을 잊지말자
3. 풀이
import math def solution(k, d): answer = 0 if k > d: return 1 elif k == d: return 3 else: for i in range(0,d+1,k): answer += math.floor(math.floor( math.sqrt(d**2 - (i**2))) /k) + 1 return answer
'알고리즘' 카테고리의 다른 글
[프로그래머스] 귤 고르기 (0) 2023.07.13 [프로그래머스] 예상 대진표 (0) 2023.07.12 [프로그래머스] n^2 배열 자르기 (0) 2023.07.11 [프로그래머스] 방문 길이 (0) 2023.07.09 [프로그래머스] 의상 (0) 2023.07.08