공유기 설치
SW/알고리즘 문제풀이 2021. 5. 19. 15:41

2021.05.17 공유기설치 Solution 가장 인접한 두 공유기 사이의 최대거리를 x라고 하겠습니다. x의 최소값은 두 집이 인접할 때의 거리인 1이고, 최대값은 가장 오른쪽집 - 가장 왼쪽집이 됩니다. (1 = C: return True else: return False def solution(N, C, home): ret = None home.sort() dist = [] for i in range(N): for j in range(i+1, N): if home[j]-home[i] not in dist: dist.append(home[j]-home[i]) dist.sort() # Binary Search start = 0 end = len(dist) - 1 if CanBuild(N, C, hom..

가사검색
SW/알고리즘 문제풀이 2021. 4. 20. 18:49

가사검색 2021.04.20 Solution1 Hashing & Slicing & BruteForce query를 슬라이싱합니다. ? 가 접미사인 경우, ? 전까지 슬라이싱 합니다. ? 가 접두사인 경우, 뒤집어서 ? 전까지 슬라이싱 합니다. 전부 ? 인 경우, IsAll 변수에 표시합니다. words와 query를 비교합니다. 길이를 비교합니다. (다르면 더이상 확인할 필요 없습니다. => 거짓) query가 전부 ? 인 경우, 더이상 확인할 필요 없습니다. => 참 words의 접두사 / 접미사와 슬라이싱한 query를 query의 길이만큼 전부 비교합니다. 이미 확인된 녀석은 Dictionary로 값을 기억하고 있다가 해당 쿼리가 다시 나타나면 그 값을 그대로 사용합니다. 결과 : 효율성 테스트케이..