본문 바로가기

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.