반응형
백준 BOJ 알고리즘 오답노트 - 2346 번
풍선을 터트렸을때 양수인경우만 1칸 덜 움직인다.
erase시 큐가 한번 땡겨지는 기능까지 포함되기 때문!
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | //2346 // 상당히 좆같음 -> #include<iostream> #include<deque> using namespace std; int main(){ int n; cin>>n; deque<pair<int,int>> dq; // first : 이동 , second : 번째 for(int i=1 ;i <= n ; i++){ int tmp; cin>>tmp; dq.push_back(make_pair(tmp,i)); } while(!dq.empty()){ int move = dq.front().first; int seq = dq.front().second; cout<<seq<<" "; dq.pop_front(); if(move > 0 ) move--; while(move != 0){ if(move > 0 ){ dq.push_back(dq.front()); dq.pop_front(); move -=1; } else{ dq.push_front(dq.back()); dq.pop_back(); move +=1; } } } } //FB1. move > 인경우 move -- move < 인경우는 그냥 지나감 /* 3 2 1 -3 -1 2 1 -3 -1 에서는 2번만 앞에서 뒤로 -3 -1 2 1 -1 2 1 에서는 3번 뒤에서 앞으로 1 2 -1 왜냐면 pop을 해버리면 의도치 않게 한번 +1 움직인거라 */ | cs |
반응형
'알고리즘 > 백준[BOJ] 오답노트' 카테고리의 다른 글
C++cin/cout 시간초과 해결 - 백준 알고리즘 오답노트 10815 (0) | 2019.02.02 |
---|---|
C++ stack 활용 애디터 - 백준 알고리즘 오답노트 1406 (0) | 2019.02.02 |
C++ scanf의 리턴값 활용 - 백준 알고리즘 오답노트 10951 (0) | 2019.02.02 |
C++ set 과 unordered_map - 백준 알고리즘 오답노트 10816 (0) | 2019.02.02 |
C++ \랑" 출력하기 - 백준 BOJ 알고리즘 오답노트 - 10172 번 (0) | 2019.02.02 |