Algorithm

시간복잡도 시간복잡도: 주어진 문제를 해결하기 위한 연산 횟수 시간 복잡도 유형 빅-오메가$( \Omega(n))$: 최선일 때(best case)의 연산 횟수 빅-세타$(\theta(n))$: 보통일 때(avarge case)의 연산 횟수 빅-오$(O(n))$: 최악일 때(worst case)의 연산 횟수 연산 횟수 계산 방법 연산 횟수 = 알고리즘 시간 복잡도 n값에 데이터의 최대 크기를 대입하여 도출 시간 복잡도 도출 기준 상수는 시간 복잡도 계산에서 제외 ex) $ 3N $ → $ N $ 가장 많이 중첩된 반복문의 수행 횟수가 시간 복잡도의 기준이 됨 ex) $ N^2 + 10N $ → $ N^2 $ 디버깅 디버깅(debugging): 프로그램에서 발생하는 문법 오류나 논리 오류를 찾아 바로잡는 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 시간 초과^^ def solution(sequence, k): # 합 배열 s = [0] * (len(sequence)+1) for n in range(1, (len(sequence)+1)): s[n] = s[n-1] + sequence[n-1] # 구간 합 answer = [] min_len = 1000001 for i in range(len(sequence)+1): for j in range(i, len(sequence)+1): if s[j] - s[i-1] == k and j-i < min_len: if..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 단순한 큐를 이용한 문제라 생각하고 접근했으나 조건들로 인해 실패했던 과정을 하나하나 코드와 함께 작성했다. 발생할 수 있는 모든 경우를 겪고 정리했으니 다들 여기서 해답을 찾으시길 바랍니다! 시행착오 1 from collections import deque def solution(queue1, queue2): queue1, queue2 = deque(queue1), deque(queue2) answer = 0 # 원소는 정수이므로 두 큐의 합이 홀수이면 어떻게 해도 각 큐의 합을 정수로 같게 만들 수 없음(..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(bridge_length, weight, truck_weights): bridge = [0] * bridge_length # 다리 onbridge = sum(bridge) # 다리 위 트럭 하중 answer = 0 # 시간 # 다리 위의 트럭이 없을 때까지(=모든 트럭이 다리를 건널 때 까지) while bridge: answer += 1 onbridge -= bridge.pop(0) # 맨 앞에 위치한 트럭이 다리를 지나면 하중 감소 # 남은 대기 트럭이 있으면 if truck_..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(topping): answer = 0 for i in range(1,len(topping)): left = set(topping[:i]) right = set(topping[i:]) if len(left)==len(right): answer += 1 return answer 토핑의 가짓수를 구해야 하므로 호기롭게 set으로 코드를 작성하고 제출했지만 마주친 결과는 시간초과였다. 어떻게 시간초과를 해결해야 할지 모르겠어서 힌트를 찾아본 결과 딕셔너리를 이용하면 시간을 줄..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import heapq def solution(scoville, K): answer = 0 # 섞은 횟수 heapq.heapify(scoville) # 최소 heap # 새로운 스코빌 지수 계산이 가능할 때(len >= 2) while len(scoville) >= 2: min1 = heapq.heappop(scoville) # 최소값이 K 이상이면 조건을 만족하므로 반복문 종료 if min1 >= K: return answer # 최소값이 K 미만이면 새로운 스코빌 지수 계산 else: min2 = h..
dduniverse
'Algorithm' 카테고리의 글 목록 (3 Page)