Algorithm

[BOJ_5379] ํ‚ค๋กœ๊ฑฐ (์‹ค๋ฒ„ 2) - JAVA

์ด์ˆ˜๋ฐˆ 2024. 7. 19. 14:59

 

     


    ๐Ÿพ ์•Œ๊ณ ๋ฆฌ์ฆ˜

    • ๋‘ ๊ฐœ์˜ ์Šคํƒ์œผ๋กœ ๋‚˜๋ˆ ์„œ ํ’€ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ listIterator ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด๋ณด์•˜๋‹ค
    • <, >, - ์ด ์„ธ๊ฐ€์ง€์— ๋Œ€ํ•ด ๋ถ„๋ฅ˜๋งŒ ์ž˜ ํ•ด์ฃผ๋ฉด ๋จ
    • ์ปค์„œ์ด๋™์— ๋Œ€ํ•ด listIterator์— ๋‹ค ๋ช…์‹œ๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์›”ํ–ˆ์Œ

    ์ถœ์ฒ˜ : https://www.scientecheasy.com/2020/09/listiterator-in-java.html/

     

     


    ๐Ÿพ ์†Œ์Šค์ฝ”๋“œ

    import java.io.*;
    import java.util.*;
    
    public class Main {
        static LinkedList<Character> linkedList;
        public static void main(String[] args) throws IOException {
            Scanner sc = new Scanner(System.in);
            int N = sc.nextInt();
    
            for(int i=0;i<N;i++){
                linkedList = new LinkedList<>();
                ListIterator<Character> list=  linkedList.listIterator();
                String str = sc.next();
                for(int j=0;j<str.length();j++){
                    char c = str.charAt(j);
                    switch (c){
                        case '<':
                            if(list.hasPrevious()){
                                list.previous();
                            }
                            break;
                        case '>' :
                            if(list.hasNext()){
                                list.next();
                            }
                            break;
                        case '-':
                            if(list.hasPrevious()){
                                list.previous();
                                list.remove();
                            }
                            break;
                        default:
                            list.add(c);
                    }
    
    
                }
                StringBuilder sb = new StringBuilder();
                for(char s:linkedList){
                    sb.append(s);
                }
                System.out.println(sb.toString());
            }
    
    
        }
    }

    ๐Ÿ˜ตโ€๐Ÿ’ซ ๊ณต๋ถ€ํ•ด์•ผ ํ•  ์ 

    • ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ Iterator
    • ๋‚ด๊ฐ€ ๋ชจ๋ฅด๋Š” ๋ฉ”์„œ๋“œ๋“ค ๋ฐฐ์šธ ๋•Œ๋งˆ๋‹ค ์ •๋ฆฌํ•˜๊ธฐ!

     

     

    https://www.acmicpc.net/problem/5397