본문 바로가기

알고리즘

(87)
데일리 알고리즘 230116 데일리 알고리즘 230116 프로그래머스, 예산 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📄 나의 코드 def solution(d, budget): d.sort() for i in range(1, len(d)+1): if(d[0] > budget): # 정렬 후, 첫번째 원소(min(d))가 budget보다 큰 경우, 예외처리 return 0 if(sum(d[:i]) > budget): break else: answer = i return answer print("d : [1,3,2,5,4], budget : 9, reault : ", solutio..
데일리 알고리즘 230113 데일리 알고리즘 230113 프로그래머스, 소수 찾기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 계속 유효성검사, 테스트 끝에 3개에서 런타임오류... 소수찾기 검색을 해봤다. 📌 에라토스테네스의 체 에라토스테네스의 체(Sieve of Eratosthenes)는 소수를 구하는 효율적인 알고리즘입니다. 이 알고리즘은 2부터 n까지의 숫자를 가지고 시작하며, 2부터 시작하여 소수를 찾아나가는 과정입니다. 과정은 다음과 같습니다. 2부터 n까지의 숫자를 가지고 소수 후보를 만듭니다. 2부터 시작하여 각 숫자를 확인합니다. 첫번째 숫자는 2이며, 2는 소수이..
자료구조 4주차 _ DFS & BFS 자료구조 4주차 _ DFS & BFS 📌 DFS란? Dep First Search 인접한 노드를 끝까지 탐색 끝까지 파고드는 것이라, 그래프 최대 깊이 만큼의 공간을 요구 공간↓ 최단 경로 탐색 어려움 📌 BFS란? Breadth First Search 한 노드를 시작으로 인접한 모든 정점들을 다 둘러보는 방식 모든 분기되는 수를 다 저장함. 공간↑ 최단 경로 쉽게 찾을 수 있음 모든 경우의 수를 다 탐색해야하는 경우가 있음. 📌 DFS 재귀함수 구현해보기 # 위의 그래프를 예시로 삼아서 인접 리스트 방식으로 표현했습니다! graph = { 1: [2, 5, 9], 2: [1, 3], 3: [2, 4], 4: [3], 5: [1, 6, 8], 6: [5, 7], 7: [6], 8: [5], 9: [1, ..
데일리 알고리즘 230112 데일리 알고리즘 230112 프로그래머스, 3진법 뒤집기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📄 나의 코드 def solution(n): re_three = "" while n > 0: re_three += str(int(n % 3)) n = n // 3 return int(re_three, 3) print("7 result : ", solution(45)) print("125 result : ", solution(125)) 📌 문자열 or list 뒤집기 string = "1234" string[::-1] list = [1,2,3,4] lis..
데일리 알고리즘 230111 데일리 알고리즘 230111 프로그래머스, 최대공약수와 최소공배수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📄 나의 코드 def solution(n, m): for i in range(min(n,m), 0, -1): if n % i == 0 and m % i == 0: maxDiv = i break for i in range(max(n,m), (n*m) + 1): if i % n == 0 and i % m == 0: minMul = i break return [maxDiv, minMul] print("result : ", solution(3,12))..
자료구조 4주차_그래프 자료구조 4주차_그래프 그래프란? 비선형구조 연결 관계에 초점을 맞춤 로제 - 사나 ⎜ 제니 - 르탄 로제, 사나, 제니, 르탄이는 연결관계를 가지는 노드(Node) 르탄이와 제니는 간선(Edge)으로 연결되어 있음 르탄이와 로제는 인접노드(Adjacent Node) 📌 유방향 그래프(Directed graph) : 방향이 있는 간선(단방향) 로제 -> 사나 로제에서 사나로는 갈 수 있지만, 사나에서 로제로는 갈수 없음 📌 무방향 그래프(Undirected graph) : 방향이 없는 간선 로제 - 사나 로제에서 사나로 갈 수 있고 사나에서 로제로도 갈 수 있음 📌 인접 행렬 2 - 3 ⎜ 0 - 1 1. 이를 인접 행렬, 2차원 배열로 나타내면 다음과 같습니다! 0 1 2 3 0 X O X X 1 O ..
자료구조 4주차_힙 자료구조 4주차_힙 힙(Heap)이란? 테이터에서 최댓값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리 📌 Max Heap 원소 추가 class MaxHeap: def __init__(self): self.items = [None] def insert(self, value): # 1. 새노드를 맨 끝에 추가한다. # 2. 지금 넣은 새노드를 부모와 비교한다. 만약 부모보다 크다면, 교체한다. # 3. 이 과정을 꼭대기까지 반복한다. self.items.append(value) cur_index = len(self.items) - 1 # 가장 마지막에 넣은 value의 idx while cur_index > 1: parent_index = cur_index // 2 if self.items[cur_i..
데일리 알고리즘 230110 데일리 알고리즘 230110 프로그래머스, 부족한 금액 계산하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📄 나의 코드 def solution(price, money, count): pay = 0 for i in range(1, count+1): pay += price * i if money > pay: return 0 else: return pay - money print("result : ", solution(3,20,4))
데일리 알고리즘 230109 데일리 알고리즘 230109 프로그래머스, 콜라츠 추측 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📄 나의 코드 def solution(num): if num == 1: return 0 else: answer = 0 while num != 1: answer += 1 if answer == 500: return -1 if num % 2 == 0: num = num / 2 else: num = num * 3 + 1 return answer print("answer : ", solution(6)) print("answer : ", solution(1)) p..
자료구조 4주차_트리 자료구조 4주차_트리 📌 선형구조 큐(Queue), 스택(Stack) 데이터들을 순차적으로 나열시킨 형태 자료를 꺼내는 것에 초첨이 맟춰져 있음 📌 비선형구조 트리 데이터가 계층적 혹은 망으로 구성되어 있음 자료 표현에 초점이 맞춰져 있음 트리 📌 계층형 구조 Root Node : 트리 맨 위에 있는 노드 Level : 노드의 깊이 Parent Node : 어떤 노드의 상위 레벨에 연결된 노드 Child Node : 어떤 노드이 하위 레벨에 연결된 노드 Leaf Node(Terimnal Node) : Child Node가 하나도 없는 노드 Sibling : 동일한 Parent Node를 가진 노드 Depth : 트리에서 Node가 가질 수 있는 최대 Level 이진 트리(Binary Tree) 자식노드를..