코딩하는 해맑은 거북이
[Python] 점 찍기 - 프로그래머스 본문
해당 글은 프로그래머스 문제 '점 찍기'를 다룬다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/140107
설명
처음에는 2중 for문으로 해결하려했으나, 시간초과로 많은 시간을 쓴 문제이다.
최종적으로는 1개의 for문을 사용해서 해결해야 하는 문제이다.
이는 원점을 중심으로 반지름 d를 가지는 원을 그려보면 이해가 된다.
각각의 x에 대한 y의 최대값을 구하고, x는 k씩 증가하므로 (k로 나눠준 값 + 1)을 하면 정답을 구할 수 있다.
코드
def solution(k, d):
answer = 0
data = [i for i in range(0, d+1, k)]
for x in data:
max_y = (d**2-x**2)**0.5
answer += int(max_y//k)+1
return answer
'코딩테스트' 카테고리의 다른 글
[Python] 숨바꼭질 - 백준 (BFS) (0) | 2022.12.13 |
---|---|
[Python] 단지번호붙이기 - 백준 (DFS) (0) | 2022.12.11 |
[Python] 미로 탐색 - 백준 (BFS) (0) | 2022.12.11 |
[Python] 인구 이동 - 백준 (BFS) (0) | 2022.12.10 |
[Python] 방 번호 - 백준 (0) | 2022.12.10 |
Comments