728x90
반응형

3

백준, BOJ, 2346번, 풍선 터뜨리기 C++ [CPP] ★★★★★

큐 같지만 덱인 문제다. (원형큐 문제다) 꽤 생각해볼만한 문제다. 왜냐면 front가 항상 앞을 가리키고 있다고 생각하면 역방향 회전과 정방향 회전의 느낌이 조금 다른 느낌이라서 그렇다. 메모리 제한이 있기 때문에 잘 해야한다. 하나로 묶을 수 있는 것은 하나로 묶어야한다. https://www.acmicpc.net/problem/2346 #내 풀이 #include using namespace std; int N; //메모리 제한 4MB //int 1개 4바이트.. 256개면 1KB, 256*1024개면 1MB..? int main(){ cin >> N; deque balloon; for(int i = 1; i> x; balloon.push_back({i,x}); //1~N번 } while(!ballo..

C++에서 vector의 단점을 극복한 deque

[프로그래밍언어(Programming Language)/C || C++] - Deque, 덱 , 자료구조 [CPP] 물론 덱에 대한 글은 썼지만 그냥 사용법만 적어놨다. 아무래도 모든 자료구조는 trade-off 관계일 수 밖에 없다. 하지만 이익을 최대한보고 손해를 최소한으로 하는 인간의 끊임 없는 노력은 vector의 단점마저 극복하고자 하였다. vector에서 push_front() 는 insert로 대신한다고 하였다. erase도 마찬가지다. 즉, 맨 앞에서 일어나는 삽입과 삭제는 cost가 높다. 즉, 시간이 오래걸린다. 그래서 사람들은 덱을 만들어냈다. 덱은 아래 3가지의 조건을 만족해야 한다. push_front(), pop_front(), push_back(), pop_back()에 있어서..

CS Interview 2021.06.15

백준, BOJ 1021번 회전하는 큐 C++ [CPP]

물론 생각은 한 번에 났으나 구현이 20분은 걸렸다. www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 처음 문제보면서.. ?? 어떤 자료구조를 쓸까.. 만약 shift를 하면 앞 뒤 둘다에서 삭제 삽입이 일어나는구나. -> Deque를 쓰자. Double ended queue 왼쪽으로 미는 거랑 오른쪽으로 미는 거랑 구분을 해야겠다. **덱을 복사해서 쓰고 이동횟수가 적은 쪽을 다시 원본으로 복사해서 쓰자. -> 다른 방법이 바로 생각안나서 N도 적어서 ..

728x90
반응형