99ํด๋ฝ ์ฝํ ์คํฐ๋ 15์ผ์ฐจ TIL : ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(๋ฐฑ์ค 13417๋ฒ)



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๋ฅผ ์ฌ์ฉํ๋๋ฐ, ํจ์จ์ฑ ์ธก๋ฉด์์ ๋ ์ข์ ์๋ฃ๊ตฌ์กฐ๊ฐ ์๋์ง ๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ ๋ ํ์ธํด๋ด์ผ์ง