양방향 반복자인 LIstIterator의 사용 여부
반복이 끝난 iter의 재사용이 아닌 ListIterator를 하나를 더 만들어 사용한다.
중간 중간 반복자의 이용시 오류가 없도록 해당 위치에 원소가 있는지 꼭 체크해보자
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
String[] input = br.readLine().split("");
LinkedList<String> Keyloger=new LinkedList();
ListIterator iter=Keyloger.listIterator();
for(int j=0;j<input.length;j++) {
if(input[j].equals("<")) {
if(iter.hasPrevious()) {
iter.previous();
}
} else if(input[j].equals(">")) {
if(iter.hasNext()) {
iter.next();
}
} else if(input[j].equals("-")) {
if(iter.hasPrevious()) {
iter.previous();
iter.remove();
}
} else {
iter.add(input[j]);
}
}
Iterator it=Keyloger.iterator();
while(it.hasNext()) {
String s=(String)it.next();
bw.write(s);
}
bw.write("\n");
}
bw.flush();
}
}
반응형
'Algorithm > Baekjoon For.Java' 카테고리의 다른 글
10816 : 숫자 카드 2 (0) | 2023.03.17 |
---|---|
1351 : 무한 수열 (0) | 2023.03.16 |
1406 : 에디터 (0) | 2023.03.12 |
1013 : Contact (0) | 2023.03.12 |
15312 : 이름 궁합 (0) | 2023.03.11 |