파이썬
-
백준 1021번 : 회전하는 큐 (Python, 파이썬)카테고리 없음 2019. 2. 4. 00:01
https://www.acmicpc.net/problem/1021 큐를 움직일 함수를 먼저 정의한다. 포인터를 어디로 이동할지 결정하기 전에 예비로 포인터를 인덱스 0에 두고 뽑아내려는 수와 인덱스0의 수가 같아질 때까지 포인터를 오른쪽 이동해본다.수가 같아지면 right에 담긴 숫자를 확인해 얼만큼 오른쪽으로 이동했는지 확인한다. 그리고 큐의 전체 길이에서 오른쪽으로 이동한 횟수를 뺴 왼쪽으로 이동해야할 횟수를 구한다. 그리고 오른쪽으로 이동한 횟수, 왼쪽으로 이동한 횟수를 비교해 이동횟수가 적은 방향을 선택해 실제로 포인터를 이동한다.정의한 함수는 이동 후 포인터가 큐에 위치한 인덱스, 이동횟수를 반환한다 for문을 활용해 뽑아내려고하는 수를 차례로 함수에 넣는다. for문이 돌때마다 함수가 반환한 ..
-
링크드 리스트(Linked list) - 자료구조, 파이썬(python)카테고리 없음 2019. 2. 1. 14:46
node와 node사이의 연결을 이용해 데이터를 엮어내는 자료구조입니다. node를 정의하고 node.next를 정의해 다음에 올 node를 node.next에 담아 엮는 것입니다. 저는 오름차순으로 숫자를 추가하는 add 메서드, 링크드 리스트에 있는 노드를 조회하는 desc메서드, 원하는 노드를 삭제하는 delete 메서드를 구현 했습니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051class Node: def __init__(self, data): self.data = data self.next = None class NodeMgmt: def __init__(self, data..
-
백준 5639번 : 이진검색트리 (Python, 파이썬) - 미완성 코드카테고리 없음 2019. 2. 1. 14:25
https://www.acmicpc.net/problem/5639전위 순회(Preorder traversal)는 기존의 트리구조를 그대로 보존해 다른 곳으로 옮길 수 있다는 장점이 있다. 이 문제에선 그 장점을 이용한다. 전위 순회 값을 받아 그대로 투입하면 온전한 트리구조를 만들 수 있다. 그 트리를 다시 후위 순회로 뽑아내기만 하면 된다. 하지만 보다시피 '실패' 예제 입력과 예제 출력을 충실하게 반영하므로 잘못 짠 것 같진 않다. 하지만 미세한 반례가 있는지 계속 틀리다고 한다. 내 생각엔 지금까지 풀어본 문제에 비해 이 문제의 입력 조건이 특이해서 그런 것 같다. 123456789101112131415161718192021222324252627282930313233343536373839404142..
-
이진탐색트리(Binary search tree) - 파이썬, 자료구조카테고리 없음 2019. 1. 28. 14:24
위의 움짤을 참고하면 이해하기 쉽다.맨처음 root노드가 등장한다. 추가된 노드는 root노드와 대소 비교를 통해 왼쪽서브트리로 빠지거나 오른쪽 서브트리로 빠진다.이후 추가된 노드들도 대소비교를 거쳐 왼쪽, 오른쪽 서브트리로 빠진다.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125..
-
정렬 알고리즘(Sort Algorithm) 모음(Python, 파이썬)카테고리 없음 2019. 1. 21. 13:09
삽입 정렬(Insertion Sort) 123456789def insertionSort(x): for size in range(1,len(x)): val = x[size] i = size while i > 0 and x[i-1] > val: x[i] = x[i-1] i-= 1 x[i] = val return xcs버블 정렬(Bubble Sort)123456def bubbleSort(x): for size in reversed(range(len(x))): for i in range(size): if x[i] > x[i+1]: x[i], x[i+1] = x[i+1], x[i] return xColored by Color Scriptercs선택 정렬(Selection Sort)123456789def selec..
-
백준 1966번 : 프린터 큐 (Python, 파이썬) - 자료구조 큐(Deque)카테고리 없음 2019. 1. 14. 23:19
https://www.acmicpc.net/problem/196612345678910111213141516171819202122T = int(input())for _ in range(T): NM = list(map(int,input().split(' '))) N = NM[0] M = NM[1] imp = list(map(int,input().split(' '))) judge = [0 for _ in range(N)] judge[M] = 'T' cnt = 0 if len(imp) == N: while True: if imp[0] == max(imp): cnt += 1 if judge[0] == 'T': print(cnt) break else: imp.pop(0) judge.pop(0) else: imp.a..
-
백준 10866번 : 덱 (Python, 파이썬) - 자료구조 덱(Deque)카테고리 없음 2019. 1. 14. 23:17
https://www.acmicpc.net/problem/10866 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455class deque: def __init__(self): self.items = [] def push_front(self,x): self.items.insert(0,x) def pop_front(self): if len(self.items) == 0: return -1 else: return self.items.pop(0) def push_back(self,x): self.items.append(x) def pop_back(self): if len(self...
-
백준 10845번 : 큐 (Python, 파이썬) - 자료구조 큐(Queue)카테고리 없음 2019. 1. 7. 21:10
https://www.acmicpc.net/problem/10845 큐(Queue)의 개념은 쉽다. 표를 사기 위해 줄을 선 사람들을 생각해보자. 먼저 줄 선 사람이 먼저 표를 산다. 늦게 줄 선 사람은 당연히 늦게 표를 산다. 먼저 입력된 명령, 데이터가 먼저 처리된다. 늦게 입력되었다면 늦게 처리될 수밖에 없다.이러한 개념을 염두에 두고 코드를 짰다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556class Queue: def __init__(self): self.Queue_item = [] def push(self, x): self.Queue_item.append..