목록전체 글 (267)
Deff_Dev
문제문제 설명 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다.지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다.첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다.왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다.오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 ak, a1, ..., ak-1이 된다.큐에 처음에 포함되어 있던 수 N이 주어진다. 그리고 지민이가 뽑아내려고 하는 원소의 위치가 주어진다. (이 위치는 가장 처음 큐에서의 위치이다.) 이때, 그..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 n * n으로 이루어진 2차원 배열을 1차원 배열로 바꾼 뒤, left ~ right 위치에 있는 요소들을 반환하는 문제이다. 틀린 접근더보기2차원 배열을 만든 뒤, 1차원 배열로 바꾸고 left ~ right 범위의 요소를 반환하는 방법으로 풀이했다.O(n^2)으로 풀이했더니 당연히 시간초과가 나왔다.#include #include using namespace std;vector solution(int n, long long left, long long right) { vector answer; vector> map; ..
문제풀이이 문제는 1부터 입력된 N까지 번호들을 큐에 삽입하고,카드 버리기맨 앞 카드 뒤로 보내기위 규칙이 반복되는 문제로, 마지막 남은 번호를 출력하는 문제이다. #include #include using namespace std;queue q;int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for(int i = 1;i
문제풀이#include #include #include using namespace std;queue q;int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for(int i = 0; i > input; int result = 0; if(input == "push") { cin >> input; int pushNum = stoi(input); q.push(pushNum); continue; } if(input == "pop" || input == "front") { result = q.empty() ? -1 : q.front(); if (!q.empty() && input == "pop") ..
문제 KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저 송신기는 레이저 신호를 지표면과 평행하게 수평 직선의 왼쪽 방향으로 발사하고, 탑의 기둥 모두에는 레이저 신호를 수신하는 장치가 설치되어 있다. 하나의 탑에서 발사된 레이저 신호는 가장 먼저 만나는 단 하나의 탑에서만 수신이 가능하다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 개의 탑이 수평 직선에 일렬로 서 있고, 모든 탑에서는 주어진 탑 순서의 반대 방향(왼쪽 방향)으로 동시에 레이저 신호를 발사한다고 하자. 그러면, 높이..