분류 전체보기 119

백준 5430번 : AC

R은 배열의 뒤집기, D는 배열 맨 앞 요소의 삭제다. R와 D가 들어온 만큼 실제로 배열을 조작하는 작업은 O(N)의 시간이 걸려 시간 초과가 나온다. 실제로 뒤집는 것이 아닌 isReversed 변수를 만들고, 삭제도 실제로 삭제하는게 아니라 시작과 끝 인덱스를 저장해 맨 마지막에 한꺼번에 배열을 수정하는 것이 바람직하다. #include #include #include #include using namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; for (int t = 0; t > func; int N; cin >> N; ..

백준 1874번 : 스택 수열

문제를 해석하자면 다음과 같다.입력은 N와, N개의 수로 이루어진 1~N의 중복 없는 수열을 받는다.숫자 1부터 N까지 순서대로 스택에 push와 pop을 반복하는데, 이 때 입력받은 수열과 동일한 순서대로 숫자를 pop 하는 과정을 +와 -로 표시하면 된다.#include #include #include #include using namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; vector nums(N); vector answer; for (int i = 0; i > nums[i]; } stack numStack; int lastNum = 0; for (int i = 0; i

백준 10867번 : 중복 빼고 정렬하기

set 을 이용한 것과 정렬 후 unique를 이용해 중복 제거를 한 버전이 있다. set은 데이터를 삽입할 때 자동으로 오름차순으로 정렬되기 때문에 별도로 정렬할 필요가 없다. 또, 아래 코드를 추가해 c++ 스타일의 입출력 속도를 올리면 16ms에서 12ms로 시간이 줄어든다.ios_base::sync_with_stdio(false);cin.tie(nullptr); #include #include #include using namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; vector nums; for (int i = 0; i > num; nums.push_back(num); }..