BOJ/[ BOJ ] C++

[ C++ ] #5397 ( 키로커 )

haena02 2022. 2. 27. 01:39
반응형

 

문제는 그렇게 어렵다고 생각하지 않았지만

리스트를 정의하지 않고 선언한 뒤

리스트의 처음을 가르키는 iterator를 생성하면 어디를 가르킬까?에 대한 의문때문에 

내가 답을 납득하는데에 시간이 걸렸다.

 

결론은 null을 가르킨다는 것이었다.

나는  list<char> L; 이렇게 선언을 했지만 답을 보니 list<char> L={ }; 로 선언을 했다.

나처럼 해도 오답은 아니지만 답 코드를 보니 null이 들어있는 한칸이 만들어지는 것이 아닐까? 하는 발상이 떠올랐다.

 그렇게 계산해보고 예제를 넣고 풀어보니 논리가 맞았다. 

앞으로 그렇게 생각해야지...

 

#include <bits/stdc++.h>

using namespace std;

int main() {

	ios::sync_with_stdio(0);
	cin.tie(nullptr);

	int fre;
	cin >> fre;

	for (int i = 0; i < fre; i++) {
		list<char> L;
		list<char>::iterator t = L.begin();
		
		string pass;
		cin >> pass;

		for (auto c : pass) {
			if (c == '-') {
				if (t != L.begin()) { t--; t = L.erase(t); }
			}
			else if (c == '>') { if (t != L.end())t++; }
			else if (c == '<') { if (t != L.begin())t--; }
			else {
				L.insert(t, c);
			}

		}
		if(!L.empty()){for (auto i : L) cout << i ;}
		
		cout << "\n";
	}
}

 

반응형

'BOJ > [ BOJ ] C++' 카테고리의 다른 글

[ C++ ] #24416 알고리즘 수업 - 피보나치 수 1  (0) 2022.11.22
[ C++ ] #25305 커트라인  (0) 2022.11.18
[ C++ ] #3273 ( 두 수의 합 )  (0) 2022.02.21
[ C++ ] #1475 ( 방 번호 )  (0) 2022.02.21
[ C++ ] #2577 ( 숫자의 개수 )  (0) 2022.02.20