Algorithm/ํ•ญํ•ด99(4๊ธฐ)

99ํด๋Ÿฝ ์ฝ”ํ…Œ ์Šคํ„ฐ๋”” 15์ผ์ฐจ TIL : ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜(๋ฐฑ์ค€ 13417๋ฒˆ)

_dear 2024. 11. 11. 14:00

 

 

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

 

 


๐Ÿ”Ž ๋ฌธ์ œ 

N์žฅ์˜ ์นด๋“œ (์•ŒํŒŒ๋ฒณ)

ํƒœ์šฑ: ๊ฐ€์žฅ ์™ผ์ชฝ ์นด๋“œ๋ถ€ํ„ฐ ํ•œ์žฅ์”ฉ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์ฒซ๋ฒˆ์งธ ๋“ค๊ณ ์˜จ ์นด๋“œ๋Š” ์ž์‹ ์•ž์— ๋†“๋Š”๋‹ค. ๊ทธ๋‹ค์Œ ๊ฐ€์ ธ์˜จ ๊ฒƒ๋“ค์€ ๊ฐ€์žฅ์™ผ์ชฝ ๋˜๋Š” ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ๋†“๋Š”๋‹ค.

ํƒœ์šฑ์ด๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด ์ค‘ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. 

 

์นด๋“œ๊ฐฏ์ˆ˜ 1<=N<=1000

 

 

 

๐Ÿ’ก ํ’€์ด

- ๋ฌธ์ž๋ฅผ ๋ฐ›์•„์™”์„ ๋•Œ ์ด์ „์— ์žˆ๋˜ ์นด๋“œ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ์„ ํ™•์ธ ํ•œ ํ›„ ์™ผ์ชฝ ๋ฌธ์ž์—ด๋ณด๋‹ค ๋น ๋ฅด๋ฉด ์™ผ์ชฝ, ๋А๋ฆฌ๋ฉด ์˜ค๋ฅธ์ชฝ์— ์‚ฝ์ž….

- ์–‘์ชฝ์œผ๋กœ ๋„ฃ๊ธฐ ์œ„ํ•ด deque ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉ

package greedy;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;

public class Ex13417 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		int caseSu = Integer.parseInt(br.readLine());	//case
		
		for(int i=0;i<caseSu;i++) {
			int n = Integer.parseInt(br.readLine());
			
			String s = br.readLine();
			StringTokenizer st= new StringTokenizer(s);
			
			Deque<Character> queue = new ArrayDeque<Character>();
			
			for(int j=0;j<n;j++) {
				char c = st.nextToken().charAt(0); 
				if(queue.isEmpty()) {
					queue.add(c);
				} else {
					int first = queue.getFirst();
					if(first<c) 
						queue.addLast(c);
					else 
						queue.addFirst(c);
				}
			}
			
			queue.forEach(t -> sb.append(t));
			sb.append("\n");
			queue = new ArrayDeque<Character>();
		}
		
		System.out.println(sb);
	}

}

 

๐Ÿ“Œ ์˜ค๋Š˜์˜ ํšŒ๊ณ 

์‚ฌ์ „ ๊ฐ€์žฅ์•ž์— ์œ„์น˜ํ•  ๋ฌธ์ž์—ด์„ ์ฐพ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์ „์ˆœ์„œ๋กœ ์•ž์—์žˆ๋Š” ์•ŒํŒŒ๋ฒณ์ด ๋‚˜์˜ค๋ฉด ๋ฐ”๋กœ ์•ž์œผ๋กœ ์œ„์น˜์‹œํ‚ค๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค.

์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋„ฃ๊ธฐ์œ„ํ•ด deque๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ํšจ์œจ์„ฑ ์ธก๋ฉด์—์„œ ๋” ์ข‹์€ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์žˆ๋Š”์ง€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋„ ๋„ ํ™•์ธํ•ด๋ด์•ผ์ง€