Lv23 [프로그래머스] Lv 2. 연속된 부분 수열의 합 [참고자료] - https://ksb-dev.tistory.com/302 프로그래머스 - 연속된 부분 수열의 합(Java)투포인터 문제입니다. 투포인터란, 두 가지의 포인터를 사용해 배열에서 조건과 일치하는 연속된 부분을 찾을 수 있는 방법입니다. 조건에 맞춰 서로 다른 두 가지의 포인터를 움직여야 합니다.ksb-dev.tistory.com위와 같은 방식으로 2개의 pivot을 생각하고 풀었다. 1. 런타임이 발생하는 코드def solution(sequence, k): l = len(sequence) diff = l answer = 0 small = 0 total = [] sum_ = 0 for pivot in range(l): total.append(s.. 2024. 8. 19. [프로그래머스] Lv 2. 두 원 사이의 정수 쌍 import mathdef solution(r1, r2): def distance (x1, y1): return (x1**2 + y1**2)**0.5 cnt = 0 for x in range (1, r2+1): # 해당 y최댓값 y_max = math.floor(math.sqrt(r2**2 - x**2)) # 해당 y최솟값 # x가 r1보다 크면, y_min = 0 if x >= r1 else math.ceil(math.sqrt(abs(r1**2 - x**2))) cnt += y_max - y_min + 1 return cnt * 4 처음에는for i in range(1, r2+1.. 2024. 8. 18. [프로그래머스] Lv 2. 도넛과 막대 그래프 일단 문제부터 해석하기가 어려웠음.따라서, 그냥 문제를 읽고 생각의 흐름만 정리해봄.해당 입력에서 '생성한 정점 노드가 2' 라는 의미가 도무지 무슨 말인지 이해가 가지 않았다.이해한 결과는 먼저, 총 3가지의 그래프의 종류 [ 도넛 모양 그래프, 막대 모양 그래프, 8자 모양 그래프 ]가 존재하는데 이것들을 별도로 생성한 다음 해당 그래프들과 '하나의 정점'이 위의 3가지 종류의 그래프들을 잇는 역할을 한다는 것이다. 이제 얼추 문제를 파악했으니, 어떻게 edge들의 집합으로만 3가지 종류의 그래프를 구분할 수 있을지 고민해 보자. 가장 어려울 듯한 모양이 '8자 모양'인 듯하다. 8자 모양 그래프는 크기가 동일한 2개의 도넛 모양 그래프에서 정점을 하나씩 골라 결합시킨 형태의 그래프입니다. 결국 도넛.. 2024. 6. 30. 이전 1 다음