본문 바로가기
코딩테스트 파이썬/파이썬 프로그래머스 2단계

점 찍기

by 세용용용용 2023. 11. 24.

코딩테스트 연습 - 점 찍기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

 

나의 코드

def solution(k, d):
    answer = 0
    # 좌표를 이동하며 거리가 d이하 인것 카운트 해주기
    for i in range(1000001):
        pt_ct = 0
        for j in range(1000001):
            if (((i*k)**2)+((j*k)**2))**(1/2)>d:
                break
            pt_ct+=1
        # 더 이상 추가할 좌표가 없으면 break
        if pt_ct != 0:
            answer += pt_ct
        else:
            break
    #print(answer)
    return answer

시간 초과....... 흙흙흙

 

새로운 코드

def solution(k, d):
    answer = 0
    # x좌표를 돌며
    # 가능한 y값 증감시켜주기
    for i in range(0,d+1,k):
        y = int(((d**2)-(i**2))**(1/2))
        answer += (y//k)+1
        
    return answer

 

1. for문을 하나만 쓰며 x값을 순회

2. 가능한 y값을 증감해준다

'코딩테스트 파이썬 > 파이썬 프로그래머스 2단계' 카테고리의 다른 글

리코쳇 로봇  (0) 2024.02.19
하노이의 탑  (0) 2024.02.15
테이블 해시 함수  (1) 2023.11.23
미로 탈출  (2) 2023.11.22
거리두기 확인하기  (1) 2023.11.21