본문 바로가기

Algorithm40

[해시] 마라톤 문제 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completionreturn loser [leo, k.. 2020. 2. 27.
#5. 연결 리스트(2) 연결리스트의 요소 삽입과 삭제에 대해 설명해보고자 합니다. 연결리스트란 각 노드가 데이터와 그 다음에 올 데이터의 link를 갖고있는 데이터 구조를 말합니다. class Node: def __init__(self, item): self.data = item self.next = None class LinkedList: def __init__(self): self.nodeCount = 0 self.head = None self.tail = None def getAt(self, pos): if pos self.nodeCount: return None i = 1 curr = self.head while i < pos: curr = curr.next i += 1 def traverse(s.. 2020. 2. 24.
#4. 연결 리스트(1) 연결 리스트 연결리스트란 위의 사진처럼 각 노드가 데이터와 그 다음에 올 데이터의 link를 갖고있는 데이터 구조를 말합니다. 각각의 데이터와 링크를 갖고있는 블록을 '노드'라고 부릅니다. 노드의 가장 첫 번째를 Head라고 하고, 맨 끝 노드를 Tail이라고 하는 것이 일반적입니다. 연결 리스트 코딩 #노드 정의 class Node: def __init__(self, item): self.data = item self.next = None class LinkedList: #연결 리스트 정의 def __init__(self): self.nodeCount = 0 self.head = None self.tail = None #연결 리스트 탐색 def getAt(self, pos): if pos < 1 or .. 2020. 2. 13.
#3. 알고리즘의 복잡도 알고리즘의 복잡도 시간 복잡도(time Complexity) 문제의 크기와 이를 해결하는데 걸리는 시간 사이의 관계 공간 복잡도(space) 문제의 크기와 이를 해결하는데 필요한 메모리 공간 사이의 관계 평균 시간 복잡도(Average Time Complexity) 임의의 입력 패턴을 가정했을 때 소요되는 시간의 평균 최악 시간 복잡도(Worst-case Time Complexity) 가장 긴 시간을 소요하게 만드는 입력에 따라 소요되는 시간 Big-O Notation 점근 표기법(asymptotic natation)의 하나 어떤 함수의 증가 양상을 다른 함수와의비교로 표현 (알고리즘의 복잡도를 표현할 때 흔히 쓰임) 선형 시간 알고리즘 - O(n) 무작위의 n개의 숫자 중 최댓값을 찾는 문제 최댓값 -.. 2020. 2. 13.