큐(Queue) 개념: 스택과 마찬가지로 삽입, 삭제의 위치와 방법이 제한되어있는 유한 순서 리스트(Finite ordered list)지만,스택과 달리 리스트의 한쪽 끝에서는 삽입 작업이 이루어지고, 반대쪽 끝에서는 삭제 작업이 이루어져서삽입된 순서대로 삭제되는 선입선출(FIFO: First In First Out) 구조 입니다! 흔한 예로 볼수 있는게 놀이동산의 놀이기구 기다리는 줄이 있죠. 즉 스택은 뒤에서 들어오고 뒤에서 빠져나가기 때문에 배열의 용량 관련한 문제가 없다. 하지만 큐는 뒤에서 들어와서 앞으로 빠져나가기 때문에 빠져나갔을때 나머지것들을 앞으로 옮겨야 하며, 옮기지 않을경우앞의 배열 공간은 비면 서 뒤에는 계속 늘어나는 형태이므로 사용할수 있는 공간이 큐를 사용할수록 점점 줄어든다. ..
연결 리스트를 써야하는 상황 -> 몇개의 원소를 갖는지 미리 정하지 못하는 상황 장점 : 쉽고 빠른 추가/삽입/삭제단점 : 원소의 참조(탐색)가 비효율적, 포인터 때문에 4byte추가 공간 필요 스택 선입 후출(먼저 들어가면 나중에 나오는) 구조 1. 배열 기반 스택typedef int ElementType; typedef struct tagNode{ElementType Data;}Node; typedef struct tagArrayStack //배열 기반 스택{int Capacity;int Top;Node* Nodes;}ArrayStack;스택을 배열로 구현 할 경우 구현이 상대적으로 간편하지만, 대신에 크기를 미리 정해야함.연결리스트로 스택을 구현 할 경우 구현은 상대적으로 손이 더 가지만, 크기를 ..
완전 개 쌩 노가다 문제.. 다음부터 이런 문제는 거르는게 낫겠다 로마숫자를 아라비아숫자로 바꾸는것은 별로 어렵지 않다. 배열[로마숫자] = 아라비아숫자 -> arr['V'] = 5; 이런식으로 배열에 넣어놓고 나서 주어진 입력의 로마숫자에 대해서 하나씩 문자를 택한뒤 그 로마숫자를 아라비아숫자로 변환만 해줘서 더해주기만 하면 된다. int romtonum(string temp) { int ret=roma[temp[0]]; for(int i=1; i5){ num -=5; temp += numtorom(5);} if(num%3==1)temp+= "I"; if(num%3==2)temp+= "II"; if(num%3==0)temp+= "III"; }else if(num/100 == 0) //num이 두자리수 ..
게임 대진표 에서 보던걸 그대로 문제로 옮긴듯 스타 리그로 예를 들면 이영호와 김택용이 각각 다른조에 있는데 몇번만에 둘이 만나서 대결하느냐를 구하는 시뮬레이션 문제 물론 처음부터 같은 조에 있으면 1을 출력할것이다. 123456789101112131415161718192021#include #include #include using namespace std;int n; int main(){ cin >>n; int a,b; cin>>a>>b; int count=1; while((int)((double)a/2+0.5) != (int)((double)b/2+0.5) ) //반으로 나눈걸 반올림한게 같은 경우 대결함. { a = a%2==0? a/2:a/2+1; b = b%2==0? b/2:b/2+1; cou..
알고리즘을 보기 쉽게 눈으로
며칠만에 bfs 다시 풀려고하니까 어떻게 해야되는지 까먹어서 조금 고민했던 문제.. 틀린 원인 까지 분석해보겠다 우선 문제 자체는 기본적인 bfs문제이다. 비 방향 그래프가 주어지고 1번컴퓨터와 연결된 모든 컴퓨터의 개수를 세는 문제이다.(1번컴퓨터 제외) 문제를 보자마자 dfs 혹은 bfs를 적용하면 쉽게 풀릴것 같았고, 그중에서도 bfs를 쓰는게 더 빨리 답을 찾을수 있을것 같았다. 대충 알고리즘 동작 방식은 문제에 주어진 입력을 W[i][j]의 인접행렬로 바꾸고 그리고 나서 bfs를 시작하는데 1번컴퓨터 부터 bfs를 시작하게끔 설계했다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495..
계단 오르기 성공 풀이문제집 시간 제한메모리 제한제출정답맞은 사람정답 비율1 초128 MB166596265466238.207%문제계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다.예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째, 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다.계단 오르는 데는 다음과 같은 규칙이 있다.계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다.연속된 세 개의 계단을 모두 밟아서..
이 사진 처럼 페이지를 이동할때마다 현재 나에게 도착한 쪽지의 개수를 출력 하는 방법을 알아 보겠습니다. 실시간 채팅, 실시간 알림 기능등에 사용되는 웹 소켓을 사용해서 구현 했습니다. 웹소켓이란 서버와 클라이언트 사이의 양 방향 통신을 지원하기 위한 프로토콜 이라고 생각 하면 됩니다. 기존의 http 프로토콜은 단방향 통신을 지원하기 위한 프로토콜 이었지만 좀더 사용자의 다양한 요구를 수용하기 위해 웹소켓이라는 것이 탄생하게 되었습니다. 웹 소켓의 연결을 설정할때는 http 프로토콜을 사용하기 때문에 기존의 http 포트번호(80)을 그대로 사용해서 웹소켓을 사용할수 있으며 http에 비해서 웹소켓은 헤더가 상대적으로 작기때문에 실시간 통신에 아주 적합합니다. 좀더 자세한 정보는 구글링 하시는게 빠릅니..
- Total
- Today
- Yesterday
- rendering scope
- computed
- Next.js
- reflow
- webpack
- es6
- useRef
- design system
- useEffect
- await
- atomic design
- Polyfill
- promise
- async
- javascript
- state
- server side rendering
- typescript
- reactdom
- react hooks
- reducer
- react
- storybook
- props
- type alias
- Action
- return type
- hydrate
- mobx
- Babel
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |