[swexpert] 1230. 암호문3 (C++, 연결리스트)

728x90
반응형

연결리스트를 구현을 하면 좋으련만 c++을 다시 공부하면서 stl도 아직 모르는게 많아서

문제 많이 풀면서 익숙해지는게 먼저인 것 같다.

 

#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <string>
#include <list>
using namespace std;

int main(void) {

	ios::sync_with_stdio(false);
	cin.tie(NULL);


	for (int tc = 1; tc <= 10; tc++) {
		list<int> l;
		int n,x,y,cur;
		char tmp;
		cin >> n; // 암호문 길이
		for (int i = 0; i < n; i++) {
			cin >> x;
			l.push_back(x);
		}
		cin >> n; //명령어 개수
		while (n--) {
			cin >> tmp;
			if (tmp == 'I') {
				cin >> x >> y;
				auto iter = l.begin();
				for (int i = 0; i < x; i++) {
					iter++;
				}
				for (int i = 0; i < y; i++) {
					cin >> cur;
					l.insert(iter, cur);
					/*iter++;*/
				}
			}
			else if (tmp == 'D') {
				cin >> x >> y;
				auto iter = l.begin();
				for (int i = 0; i < x; i++) {
					iter++;
				}
				for (int i = 0; i < y; i++) {
					iter=l.erase(iter); // 지운 다음의 인덱스를 다시 업데이트 해줘야된다.
				}
			}
			else if (tmp == 'A') {
				cin >> y;
				for (int i = 0; i < y; i++) {
					cin >> cur;
					l.push_back(cur);
				}
			}
		}

		cout << "#" << tc << " ";
		auto iter = l.begin();
		for (int i = 0; i < 10; i++) {
			cout << *iter << " ";
			iter++;
		}
		cout << "\n";
	}


	return 0;
}
728x90
반응형
TAGS.

Comments