ํฐ์คํ ๋ฆฌ ๋ทฐ
[๋ฌธ์ ]
https://www.acmicpc.net/problem/5430
[ํ์ด]
์๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ํ์ดํ์์ต๋๋ค.
https://girawhale.tistory.com/9
๋ฐฐ์ด์ ์ง์ ๋ค์ง๋ ๊ฒ์ด ์๋๋ผ, start์ end์ ์ ์ง์ ํด๋๊ณ ๋๊ฐ๋ฅผ swapํด์ฃผ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ์ด์ค์ด์์ผ๋, ์๊พธ ๋ฐํ์ ์๋ฌ๊ฐ ๋์ ํ์ธํด๋ณด๋ ์ด๋ฐ์ ๋ฐฐ์ด์ ์ด๊ธฐํ ํ๋ ๊ณผ์ ์์ ์ซ์๋ฅผ ์๋ชป ๋ฝ์๋ด๊ณ ์์์ต๋๋ค.ใ ใ ๋ํ ํ์ด๋ฅผ ์ดํด๋ณด๋ Deque๋ฅผ ํ์ฉํ๋ค๋ฉด, ์ฝ๊ฒ ์ ๋ค๋ฅผ ์๋ผ๋ผ์ ์๋ค๋๊ฑธ ์๊ฒ๋์๊ณ Deque๋ฅผ ํ์ฉํ ํ์ด๋ฒ์ผ๋ก ์งํํ์์ต๋๋ค.
์ฐ์ Stringํ์์ผ๋ก ๋ค์ด์ค๋ ๋ฐฐ์ด๊ฐ์ ๋งจ์([),๋งจ๋ค(])๋ฅผ ์๋ผ๋ธ ํ, ","์ ๊ธฐ์ค์ผ๋ก split()ํ์ฌ ์ซ์๋ค์ ๋ฝ์๋ธ ํ Deque์ ์ ์ฅํ์์ต๋๋ค.
String arr = br.readLine();
Deque<Integer> deque = new LinkedList<>();
for (String s : arr.substring(1, arr.length() - 1).split(",")) {
if (!s.equals("")) {
deque.add(Integer.valueOf(s));
}
}
๋ค์์ผ๋ก ACํจ์๋ฅผ ํตํด ์ํํด์ผํ ๋์๋ค์ธ f๋ฅผ ํ์ํ๋ฉฐ R๊ณผ D๋ฅผ ์ํํ์์ต๋๋ค.
๋ง์ฝ R์ด ๋ค์ด์จ๋ค๋ฉด, ๊ฐ์ ์ญ์ ํ๋ ๊ธฐ์ค๊ฐ First์ Last๋ฅผ ๋ฐ๊ฟ์ฃผ์์ต๋๋ค. D๊ฐ ๋ค์ด์์๋ Deque๊ฐ ๋น์ด์๋ค๋ฉด error๋ฅผ ์ถ๋ ฅํ์๊ณ , ๋น์ด์์ง ์๋ค๋ฉด ๊ธฐ์ค๊ฐ์ด ๋ฐ๋ผ๋ณด๋ First๋ Last์์ ๊ฐ์ ์ ๊ฑฐํ์์ต๋๋ค.
[์ฝ๋]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
public class Main {
// R : ๋ค์ง๊ธฐ
// D : ์ฒซ๋ฒ์งธ ์ ๋ฒ๋ฆฌ๊ธฐ
public static StringBuffer sb = new StringBuffer();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int i=0;i<T;i++) {
String f = br.readLine();
int n = Integer.parseInt(br.readLine());
String arr = br.readLine();
Deque<Integer> deque = new LinkedList<>();
for (String s : arr.substring(1, arr.length() - 1).split(",")) {
if (!s.equals("")) {
deque.add(Integer.valueOf(s));
}
}
AC(deque, f);
}
}
public static void AC(Deque<Integer> deque, String f) {
boolean reverse = false;
for(int i=0;i<f.length();i++) {
if(f.charAt(i) == 'R') {
reverse = !reverse;
} else {
if(deque.size() == 0) {
System.out.println("error");
return;
}
if(reverse) {
deque.removeLast();
} else {
deque.removeFirst();
}
}
}
StringBuilder s = new StringBuilder("[");
while(!deque.isEmpty()) {
s.append(reverse ? deque.removeLast() : deque.removeFirst());
if(deque.size() != 0) {
s.append(",");
}
}
s.append(']');
System.out.println(s);
}
}
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๋ฐฑ์ค 2011๋ฒ - ์ํธ์ฝ๋ (0) | 2022.07.17 |
---|---|
[Java] ๋ฐฑ์ค 16500๋ฒ - ๋ฌธ์์ด ํ๋ณ (0) | 2022.07.15 |
[Java] ๋ฐฑ์ค 2110๋ฒ - ๊ณต์ ๊ธฐ ์ค์น (0) | 2022.06.28 |
[Java] ๋ฐฑ์ค 7453๋ฒ - ํฉ์ด 0์ธ ๋ค ์ ์ (0) | 2022.06.28 |
[Java] ๋ฐฑ์ค 9466๋ฒ - ํ ํ๋ก์ ํธ (0) | 2022.06.28 |
- Total
- Today
- Yesterday
- ๋ฐฑ์ค javascript
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- Baekjoon
- ์ฝ๋ฉํ ์คํธ
- ํฌํฌ์ธํฐ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ ์์ปฌ ํ๊ฒฝ
- fp
- ์๋ฐ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ๋ฐฑ์ค node.js
- ์ด๋ถํ์
- TDD
- ์ ์ญ ๋ณ์
- ๋คํธ์ํฌ
- ์นด์นด์ค ์ธํด
- ํ๋กํผํฐ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ํ๋กํ ์ฝ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋์์ธ ํจํด
- ๋ฐฑ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- map
- http
- ํ๋ก๊ทธ๋๋จธ์ค
- JavaScript
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ์ด์์ฒด์
- git
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |