열혈 자료구조 - 7.2 큐의 배열 기반 구현(1) by 박세용
- -> 데이터가 하나 있을 때 Front와 Rear의 위치가 같다면 주어진 공간을 모두 사용하겠다는 의미
- -> 이렇게 되면 큐가 다 채워졌는지 확인하기 위해 Front와 Rear의 관계를 비교하는데 다 채워졌을 때와 다 비워졌을 때가 동일한 관계를 가지게 되면서 모호해짐
- -> 저 위치가 꼭 고정이 아니고 dequeue연산으로 Front가 이동되면 enqueue연산으로 Rear을 이동시킬 수 있음 (= 무조건 한 칸을 비워야 함)
열혈 자료구조 - 7.2 큐의 배열 기반 구현(2) by 박세용
- Data data) { if(NextPosIdx(pq->rear) == pq->front) { printf("Queue Memory Error!"); exit(-1); } // rear + 1 == front라면 꽉 찼다고 판단 pq->rear = NextPosIdx(pq->rear); // rear를 한칸 이동하고 pq->queArr[pq->rear] = data; // 이동한 rear 인덱스에 데이터를 넣음 }
- Data Dequeue(Queue * pq) { if(QIsEmpty(pq)) { printf("Queue Memory Error!"); exit(-1); } pq->front = NextPosIdx(pq->front); // front를 한 칸 이동하고 return pq->queArr[pq->front]; // 그 위치의 데이터 반환 }
- Data QPeek(Queue * pq) { if(QIsEmpty(pq)) { printf("Queue Memory Error!"); exit(-1); } return pq->queArr[NextPosIdx(pq->front)]; }
[백준4354번] 문자열 제곱 / Python3 by 홍석준 about 백준,Python
- 따라서 해당 예외를 잡아내기 위해서는 len(string) % (len(string) - table[-1]) != 0 을 확인해주면 된다
- # 4354번 문자열 제곱 def failure(p): tmp = [0] * len(p) j = 0 for i in range(1
- ': break table = failure(string) if len(string) % (len(string) - table[-1]) != 0: # 나머지 확인 print(1) else: print(len(string) // (len(string) - table[-1]))
[백준1305번] 광고 / Python3 by 홍석준 about 백준,Python
- 해당 문제는 failure function을 사용해 접두사 접미사가 같은 최대 길이를 구한 뒤 광고판의 길이인 L 에서 failure function의 결과 배열의 마지막 요소를 빼주면 되는 문제다
- a a b a a a 0 1 0 1 2 2 => 6 - 2 = 4 이 문제는 failure function만 알고있다면 의외로 쉽게 풀 수 있는 문제였던 것 같다
- len(p)): while j > 0 and p[i] != p[j]: j = tmp[j-1] if p[i] == p[j]: j += 1 tmp[i] = j return tmp l = int(input()) adv = input() table = failure(adv) print(l - table[-1])
[Swift] Binary Search란? by 이차민 about Swift
- lowerBound) / 2 if a[midIndex] > key { // 중간을 포함한 뒤의 배열 버림 return binarySearch(a
- < midIndex) } else if a[midIndex] < key { // 중간을 포함한 앞의 배열 버림 return binarySearch(a
- 두 스텝만에 원하는 값을 찾게 된 것을 보면 Binary Search가 얼마나 강력한 탐색 방법인지 확인 가능하다
맥북 에어 M1 리뷰, 애플 반도체 칩의 성능은 얼마나 강력할까? by 왕형준
- Apple tweaks its troubled MacBook keyboard design yet again
- expands repair program
- All MacBooks with the so-called "butterfly mechanism" will now be fully eligible for Apple's Keyboard Service Program…
[macOS] how to set default python as default on M1 mac by 장지훈 about Python
[백준10266번] 시계 사진들 / Python3 by 홍석준 about 백준,Python
- 270도로 0번 인덱스와 3번 인덱스를 1로 만들고나서 clock1 을 두개 이어붙여 만들어두고 clock2 는 180도
- # 10266번 시계 사진들 def failure(p): tmp = [0] * len(p) j = 0 for i in range(1
- p): table = failure(p) j = 0 for i in range(len(s)): while j > 0 and s[i] != p[j]: j = table[j-1] if s[i] == p[j]: if j == len(p)-1: return True else: j += 1 return False n = int(input()) clock1 = [0] * 360000 clock2 = [0] * 360000 for a in map(int