덱 [C++] 3190 : 뱀 해냈다 평생의 숙원!! (x, y)는 우리가 수학적으로 생각하는 좌표와는 반대다. 열이 x, 행이 y이다. 앞으로 변수를 y, x 바꾸어 선언하여 혼동을 줄이는 것이 좋겠다. 뱀의 위치를 따로 저장하는 배열을 만들기보다는 다른 정수로 표시하여 한 번에 처리하였다. 뱀의 마지막 위치를 구하기 위하여 덱을 사용하였다. 모든 뱀의 좌표를 덱에 넣고 push와 pop을 하면서 뱀의 크기를 늘리고 줄... 2022.03알고리즘덱삼성cpp백준시뮬레이션2022.03 [C++] 백준 20055 : 컨베이어 벨트 위의 로봇 쉬웠던 시뮬레이션 문제. 그런데 은근 한 조건을 빼먹어서 꽤 애를 먹었다ㅜㅜ 꼼꼼히 문제를 보기, 로봇을 올리는 것도 내구도가 단다. 배열과 덱을 처음에는 혼용해서 사용하였는데 매우 비효율적이다. 배열로 컨베이너 벨트를, 덱을 로봇의 위치를 사용했는데 그냥 이런 컨베이터 벨트 문제는 다 덱을 사용하는게 덜 헷갈리고 편한 것 같다. 너무 많은 자료구조를 한 문제에 쓰지 말자. 덱도 배열처럼 i... 2022.04알고리즘덱삼성cpp백준시뮬레이션2022.04 [C++] 백준 23294번: 웹 브라우저 1 문제 링크 문제 요약 웹 브라우저가 존재하는데, 이 웹 브라우저는 앞으로 가기, 뒤로 가기, 웹 페이지 접속, 압축 기능이 존재한다. 만약 사용하고 있는 캐시가 캐시의 제한량을 넘어서게 된다면 뒤로 가기 공간의 가장 오래된 데이터부터 제한량을 넘지 않을 때까지 삭제한다. 4. 압축 : 뒤로 가기 공간에 연속된 동일한 데이터가 있다면, 하나만 남기고 제거해서 압축한다. 그렇기 때문에 2개의 덱... 시뮬레이션덱구현백준구현 덱의 문법 정리 덱 문법을 한 번 정리해보기로 하자. collections 모듈에서 deque 불러오기 deque 생성 append(): deque에서 오른쪽(뒤)에 값 추가 appendleft(): deque에서 왼쪽(앞)에 값 추가 extend(): deque 오른쪽(뒤)에 리스트의 객체들을 앞쪽부터 순환해서 차례대로 추가 extend(): deque 왼쪽(앞)에 리스트의 객체들을 뒤쪽부터 순환해서 차례... Deque덱python파이썬Deque [3190] 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한... 덱구현백준구현 BOJ11003 최솟값 찾기 만약 배열이 [1, 5, 9, 9, 9]인 경우, 5를 담지 않는다면 윈도우가 1을 지나버리면 윈도우에는 5가 남아있지 않기 때문에 최솟값이 5임을 알 수 없다. 미래를 생각해보면, 2가 언젠가는 서브 배열의 최솟값이 된다. 그러면 그냥 윈도우에 지나가며 모든 값을 담고, 윈도우가 벗어난 값은 버리면 되는가? 바로 새로 들어온 값보다 큰 값이 있다면 그 값을 버리면 된다. 먼저, 현재 스텝에... 덱자료 구조우선순위 큐덱 1021 : 회전하는 큐 2번째와 3번째 연산 중 어떤 연산을 최소 횟수로 할 수 있는지 확인하기 위해서는 어떤 원소와 목표 원소 간 좌, 우측 거리를 비교해야 한다. 덱을 쓰는 대신, 가장 좌측에 있는 수를 MLN \text{MLN} MLN \text{MLN}_{n} MLNn 과 목표 원소 P_{n} 이때 MLN \text{MLN}_{n} > P_{n} MLNn >Pn MLN MLN L = \text{MLN}_{n... 덱생각분석 필요덱 [C++] 스택, 큐, 덱 스택 한 쪽 끝에서만 원소를 넣고 빼는 구조 LIFO(Last In First Out): 나중에 들어온 것이 먼저 나감 헤더: #include<stack> 선언: stack<데이터타입>이름 기본 함수 stack을 선언했을 때 함수 사용법 s.push(a): stack에 a 추가 s.pop(): 제일 마지막에 추가된 원소 제거 s.top(): 제일 마지막에 추가된 원소 반환 s.empty():... 알고리즘스택C덱큐C 큐와 스택, 데크 O(1) O(n) O(n) 큐의 맨 앞에 있는 사람을 맨 뒤로 보내는 작업을 k -1 번 반복 O(N) O(N) 이 사각형의 왼쪽 끝과 오른쪽 끝은 i번 판자보다 낮다 → left[i], right[i] 최대 사각형의 넓이: (right[i] - left[i] - 1) * h[i] left[i], right[i]를 찾는 알고리즘은 판자의 개수에 비례하는 시간이 걸림 O(N^2) O(N2)이 ... 알고리즘스택stackqueue덱데크큐DequeDeque [백준 1021] 회전하는 큐 with node.js 📌 문제 📌 풀이 이 문제는 덱 문제이다. 아래만 기억해 두면 쉽게 풀 수 있다. 첫 번째 원소를 뽑아낸다.(arr.shift()) 왼쪽으로 한 칸 이동시킨다.(arr.push(arr.shift())) 오른쪽으로 한 칸 이동 (arr.unshift(arr.pop())) Array.from으로 1부터 N까지의 정수로 초기화시킨다. 뽑아내려고 하는 원소의 위치를 돌면서 deque.indexOf(... 덱코딩테스트자료구조백준덱
[C++] 3190 : 뱀 해냈다 평생의 숙원!! (x, y)는 우리가 수학적으로 생각하는 좌표와는 반대다. 열이 x, 행이 y이다. 앞으로 변수를 y, x 바꾸어 선언하여 혼동을 줄이는 것이 좋겠다. 뱀의 위치를 따로 저장하는 배열을 만들기보다는 다른 정수로 표시하여 한 번에 처리하였다. 뱀의 마지막 위치를 구하기 위하여 덱을 사용하였다. 모든 뱀의 좌표를 덱에 넣고 push와 pop을 하면서 뱀의 크기를 늘리고 줄... 2022.03알고리즘덱삼성cpp백준시뮬레이션2022.03 [C++] 백준 20055 : 컨베이어 벨트 위의 로봇 쉬웠던 시뮬레이션 문제. 그런데 은근 한 조건을 빼먹어서 꽤 애를 먹었다ㅜㅜ 꼼꼼히 문제를 보기, 로봇을 올리는 것도 내구도가 단다. 배열과 덱을 처음에는 혼용해서 사용하였는데 매우 비효율적이다. 배열로 컨베이너 벨트를, 덱을 로봇의 위치를 사용했는데 그냥 이런 컨베이터 벨트 문제는 다 덱을 사용하는게 덜 헷갈리고 편한 것 같다. 너무 많은 자료구조를 한 문제에 쓰지 말자. 덱도 배열처럼 i... 2022.04알고리즘덱삼성cpp백준시뮬레이션2022.04 [C++] 백준 23294번: 웹 브라우저 1 문제 링크 문제 요약 웹 브라우저가 존재하는데, 이 웹 브라우저는 앞으로 가기, 뒤로 가기, 웹 페이지 접속, 압축 기능이 존재한다. 만약 사용하고 있는 캐시가 캐시의 제한량을 넘어서게 된다면 뒤로 가기 공간의 가장 오래된 데이터부터 제한량을 넘지 않을 때까지 삭제한다. 4. 압축 : 뒤로 가기 공간에 연속된 동일한 데이터가 있다면, 하나만 남기고 제거해서 압축한다. 그렇기 때문에 2개의 덱... 시뮬레이션덱구현백준구현 덱의 문법 정리 덱 문법을 한 번 정리해보기로 하자. collections 모듈에서 deque 불러오기 deque 생성 append(): deque에서 오른쪽(뒤)에 값 추가 appendleft(): deque에서 왼쪽(앞)에 값 추가 extend(): deque 오른쪽(뒤)에 리스트의 객체들을 앞쪽부터 순환해서 차례대로 추가 extend(): deque 왼쪽(앞)에 리스트의 객체들을 뒤쪽부터 순환해서 차례... Deque덱python파이썬Deque [3190] 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한... 덱구현백준구현 BOJ11003 최솟값 찾기 만약 배열이 [1, 5, 9, 9, 9]인 경우, 5를 담지 않는다면 윈도우가 1을 지나버리면 윈도우에는 5가 남아있지 않기 때문에 최솟값이 5임을 알 수 없다. 미래를 생각해보면, 2가 언젠가는 서브 배열의 최솟값이 된다. 그러면 그냥 윈도우에 지나가며 모든 값을 담고, 윈도우가 벗어난 값은 버리면 되는가? 바로 새로 들어온 값보다 큰 값이 있다면 그 값을 버리면 된다. 먼저, 현재 스텝에... 덱자료 구조우선순위 큐덱 1021 : 회전하는 큐 2번째와 3번째 연산 중 어떤 연산을 최소 횟수로 할 수 있는지 확인하기 위해서는 어떤 원소와 목표 원소 간 좌, 우측 거리를 비교해야 한다. 덱을 쓰는 대신, 가장 좌측에 있는 수를 MLN \text{MLN} MLN \text{MLN}_{n} MLNn 과 목표 원소 P_{n} 이때 MLN \text{MLN}_{n} > P_{n} MLNn >Pn MLN MLN L = \text{MLN}_{n... 덱생각분석 필요덱 [C++] 스택, 큐, 덱 스택 한 쪽 끝에서만 원소를 넣고 빼는 구조 LIFO(Last In First Out): 나중에 들어온 것이 먼저 나감 헤더: #include<stack> 선언: stack<데이터타입>이름 기본 함수 stack을 선언했을 때 함수 사용법 s.push(a): stack에 a 추가 s.pop(): 제일 마지막에 추가된 원소 제거 s.top(): 제일 마지막에 추가된 원소 반환 s.empty():... 알고리즘스택C덱큐C 큐와 스택, 데크 O(1) O(n) O(n) 큐의 맨 앞에 있는 사람을 맨 뒤로 보내는 작업을 k -1 번 반복 O(N) O(N) 이 사각형의 왼쪽 끝과 오른쪽 끝은 i번 판자보다 낮다 → left[i], right[i] 최대 사각형의 넓이: (right[i] - left[i] - 1) * h[i] left[i], right[i]를 찾는 알고리즘은 판자의 개수에 비례하는 시간이 걸림 O(N^2) O(N2)이 ... 알고리즘스택stackqueue덱데크큐DequeDeque [백준 1021] 회전하는 큐 with node.js 📌 문제 📌 풀이 이 문제는 덱 문제이다. 아래만 기억해 두면 쉽게 풀 수 있다. 첫 번째 원소를 뽑아낸다.(arr.shift()) 왼쪽으로 한 칸 이동시킨다.(arr.push(arr.shift())) 오른쪽으로 한 칸 이동 (arr.unshift(arr.pop())) Array.from으로 1부터 N까지의 정수로 초기화시킨다. 뽑아내려고 하는 원소의 위치를 돌면서 deque.indexOf(... 덱코딩테스트자료구조백준덱