๐Ÿ“Œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„ :: ๋ฐฑ์ค€_5397 :: ์Šคํƒ&ํ - ํ‚ค๋กœ๊ฑฐ๐Ÿ‘€

Dev-Oยท2022๋…„ 2์›” 10์ผ
0

CodingTest

๋ชฉ๋ก ๋ณด๊ธฐ
11/18

๋ฌธ์ œ

ํ’€์ด

๐Ÿ’ก '<', '>', '-'์— ๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์˜ ๋ฐฐ์—ด์„ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
๊ฐ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ฌธ์ž๋ฅผ ์ˆ˜์ •ํ• ์ง€ ๊ณ ๋ฏผํ•˜๋ฉด ๋ฌธ์ œ ์ ‘๊ทผ์€ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ์™ธ์˜ ์ƒํ™ฉ์„ ์ž˜ ์ ๊ฒ€ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ํ•œ ๋ฌธ์ž์”ฉ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.
  2. ๋ฌธ์ž๊ฐ€ '<', '>', '-' ์ด ์•„๋‹ˆ๋ผ๋ฉด ๋‹ต ์Šคํƒ์— ๋ฌธ์ž๋ฅผ ๋‹ด์•„์ค๋‹ˆ๋‹ค.
  3. ๋ฌธ์ž๊ฐ€ '<'๋ผ๋ฉด ์˜ˆ๋น„ ์Šคํƒ์— ๋‹ต์Šคํƒ์˜ ๋ฌธ์ž๋ฅผ pop() ํ•ด์„œ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

    ๐Ÿ“Œ ์ปค์„œ๊ฐ€ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค โžก๏ธ ์ผ๋‹จ ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ์˜ˆ๋น„ ์Šคํƒ์œผ๋กœ ๋บด๋†“๋Š”๋‹ค.

  4. ๋ฌธ์ž๊ฐ€ '>'๋ผ๋ฉด ๋‹ต ์Šคํƒ์— ์˜ˆ๋น„์Šคํƒ์˜ ๋ฌธ์ž๋ฅผ pop() ํ•ด์„œ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

    ๐Ÿ“Œ ์ปค์„œ๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค. โžก๏ธ ์˜ˆ๋น„์Šคํƒ์— ์žˆ๋˜ ๋ฌธ์ž๋ฅผ ๊ฐ–๊ณ  ์˜จ๋‹ค.

  5. ๋ฌธ์ž๊ฐ€ '-'๋ผ๋ฉด ๋‹ต ์Šคํƒ์—์„œ ๋ฌธ์ž๋ฅผ pop() ํ•ด์ค๋‹ˆ๋‹ค.
  6. ์˜ˆ๋น„ ์Šคํƒ์— ๋‚จ์€ ๋ฌธ์ž๋ฅผ ๋ชจ๋‘ ๋‹ต์Šคํƒ์— ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.
  7. StringBuilder๋ฅผ ํ™œ์šฉํ•ด ๋‹ต ์Šคํƒ์˜ ๋ฌธ์ž๋ฅผ ๋‹ด์•„์ค€๋’ค reverse() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋‹ต์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
public static void main(String[] args) throws IOException {
		//BAPC<<A< degBCAP degBhCAP
		//dd<<>deg>h  ddegdh
		//ddegdh-                
		//dddddd     ee
		Scanner sc = new Scanner(System.in);
		Stack<Character> s = new Stack<Character>();
		Stack<Character> sub = new Stack<Character>();
		//BA<-PCd-C
		//PCCA   A
		
		int n = sc.nextInt();
		
		for(int i = 0; i < n ; i++) {
			
			String input = sc.next();
			for(int j = 0 ; j < input.length() ; j++) {
				
				char c = input.charAt(j);
				
				if(c!='<' && c!='>' && c!='-') {
					s.push(c);
					continue;
				}
				if(c=='<') {
					if(!s.isEmpty()) {
						sub.add(s.pop());
					}
					
				}
				if(c=='>') {
					if(!sub.isEmpty()) {
						s.add(sub.pop());
					}
				}
				if(c=='-') {
					if(!s.isEmpty()) {
						s.pop();
					}
				}
				
			}
			
			while(!sub.isEmpty()) {
				s.push(sub.pop());
			}
			
			StringBuilder answer = new StringBuilder();
			while(!s.isEmpty()) {
				answer.append(s.pop());
			}
			System.out.println(answer.reverse());
		}
	}
profile
Being Outstanding needs Understanding๐Ÿš€

0๊ฐœ์˜ ๋Œ“๊ธ€