일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- javscript
- design-pattern
- Eclipse
- 스택
- Rails
- 함수형 프로그래밍
- 디자인패턴
- DesignPattern
- 큐
- JDBC
- Spring
- Java
- JavaScript
- functional programming
- 로버트마틴
- Collection
- 람다 칼큘러스
- Network
- Collections
- 프로그래머스
- tcp
- 백준
- 겨울카카오인턴
- Python
- 파이썬
- solid
- Pattern
- 자바
- exception
- lambda calculus
- Today
- Total
목록큐 (3)
개발자 노트
문제 설명 주식가격들이 주어졌을 때 각 시점에 대해 연속해서 떨어지지 않는 날의 수를 구할 것. prices의 길이가 10만이므로 시간복잡도 유의 접근 이 문제는 왜 스택을 이용하면 편할까? 문제만 읽어봤을 때 말로 풀어쓰면 다음과 같다. 매 시점마다 주식가격이 올랐는지 안올랐는지 판단한다. 그리고 주식가격이 올랐거나 같으면 계속 지니고 있어서 시간을 증가시켜줘야 한다. 만약 떨어졌으면 떨어진 가격보다 큰 값들은 모두 제거해줘야 한다. 매 시점마다... -> 시간이 존재한다., 그리고 지니고 있어야 하므로 특정 자료구조에 담아줘야 한다. 그리고 3번을 보면 떨어진 가격을 제거해줄 때가 중요하다. 데이터를 담은 자료형에는 담겨진 순서대로 주식가격이 가격이 같거나 증가한다. 따라서 제거할 때는 역순으로 제거..
문제 설명 문제에서 그림과 함께 잘 설명되어 있기에 pass 봐야할 것이라면 잘린 쇠막대기의 총 수를 구하라 '()'가 레이저. arrangement가 최대 10만이기에 시간초과 주의 접근 딱 보면 뭐 어떻게 해야하는거야... 싶은 문제다. 그래서 나는 문제를 단순화해서 생각해봤다. 단순화할 때 유념해야할 것은 '()'가 레이져, 잘린 갯수 구하는 문제라는 것. case 1. ()만 주어질 경우 잘린 쇠막대기가 없으므로 0 case2. (()) 잘린 쇠막대기가 레이저에 의해 2개가 된다. case3. ((())) 잘린 쇠막대기가 레이저에 의해 4개가 된다. case4. (()()) 잘린 쇠막대기가 레이저에 의해 3개가 된다. case5. ((()())) 잘린 쇠막대기가 레이저..
문제 설명 queue인데 다음과 같은 우선순위를 고려하는 큐이다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다.priorities = [2, 1, 3, 2] 문서의 우선순위가 위와 같이 주어졌을 때, 특정 위치(location)에 있는 문서가 몇 번째에 출력될 것인가? 제한사항(조건) 1 삽입도 시간복잡도 1이 되서 더 빠름.) 구현 from queue import PriorityQueue from collections import deque class MaxPQ: def __init__(self): self.pq = Pr..