-
[BaekJoon] 1406๋ฒ : ์๋ํฐSW Test/BaekJoon 2021. 4. 15. 00:56๋ฐ์ํ
- ์ด ๊ธ์ c++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค.
๋ฌธ์
์์
ํ์ด
- ๋ฐฐ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ ์ถ๊ฐ, ์ญ์ ์ ์๊ฐ๋ณต์ก๋๋ O(N)์ด ๊ฑธ๋ฆฌ๋ ๋ฐ๋ฉด, ๋งํฌ๋ ๋ฆฌ์คํธ ๊ฒฝ์ฐ O(1)์ ๋๋ค.
- ์ด ๋ฌธ์ ๋ ์ถ๊ฐ, ์ญ์ ๊ฐ ์ฉ์ดํด์ผ ๋ ํธํ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
#include <iostream> #include <list> #include <string> using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); string s; cin>>s; list<char> mylist; for(int i=0;i<s.size();i++){ mylist.push_back(s[i]); } list<char>::iterator it = mylist.end(); int num; cin>>num; for(int i=0;i<num;i++){ char op; cin>>op; if(op == 'L' && it != mylist.begin()){ it--; } else if(op == 'D' && it != mylist.end()){ it++; } else if(op == 'B' && it != mylist.begin()){ it--; it = mylist.erase(it); }else if(op == 'P'){ char p; cin>>p; mylist.insert(it, p); } } for(list<char>::iterator itr = mylist.begin(); itr!=mylist.end();itr++){ cout<<*itr; } }
- ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด๋ ์์ ํ ๋ถ๋ถ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.
๋ฐ์ํ'SW Test > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BaekJoon] 1463๋ฒ : 1๋ก ๋ง๋ค๊ธฐ (0) 2021.04.18 [BaekJoon] 1431๋ฒ : ์๋ฆฌ์ผ ๋ฒํธ (0) 2021.04.18 [BaekJoon] 15649๋ฒ : N๊ณผ M (0) 2020.12.14 [BaekJoon] 1436๋ฒ : ์ํ๊ฐ๋ ์ (0) 2020.12.13 [BaekJoon] 1018๋ฒ : ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (0) 2020.12.13