Tags
- ์ํ
- BOJ
- ๊น์ด ์ฐ์ ํ์
- sort
- Python
- ์ ๋ ฌ
- ๋๋น ์ฐ์ ํ์
- DP
- stack
- Dynamic Programming
- ๊ทธ๋ํ ์ด๋ก
- dfs
- LV2
- queue
- Brute Force Algorithm
- SpringBoot
- Study
- ๊ตฌํ
- ๋ฌธ์์ด
- ์๋ฎฌ๋ ์ด์
- ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ํ ํ์
- BFS
- ์ ์๋ก
- ๊ต์ฌ
- CodingTest
- PGM
- greedy
- ๋ฐฑํธ๋ํน
- Java
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_5430 : AC ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- T๋ฒ์ ํ
์คํธ ์ผ์ด์ค์์ ๋ค์ ๊ณ์ฐ์ ๋ฐ๋ณตํ๋ค.
- ์ฐ์ฐ p๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
- n ํฌ๊ธฐ์ ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ๋๋ค.
- ์ฐ์ฐ์ ์ํํ๋ค.
- R : ๋ค์ง๊ธฐ
- D : ์ฒซ ๋ฒ์งธ ์ ๋ฒ๋ฆฌ๊ธฐ
- n๊ณผ p์ ๊ธธ์ด์ ์ต๋๊ฐ์ด 10๋ง์ด๋ฏ๋ก R์ฐ์ฐ๋ง๋ค ๋ฐฐ์ด์ ์ง์ ๋ค์ง์ผ๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ๋๋ค.
- ๋ฐฐ์ด์ ์์๊ณผ ๋ ์ธ๋ฑ์ค์ ๊ฐ๊ฐ ํฌ์ธํฐ๋ฅผ ๋๊ณ , ๋ค์งํ ์ํ๋ฅผ ๋ณด๋ฉฐ D์ฐ์ฐ์ ์ํํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
// Input
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int tc = Integer.parseInt(br.readLine());
for (int t = 0; t < tc; t++) {
String p = br.readLine();
int n = Integer.parseInt(br.readLine());
String origin = br.readLine();
String[] ss = origin.substring(1, origin.length() - 1).split(",");
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(ss[i]);
}
// ์ค๋ณต R ์ ๊ฑฐ
while (p.contains("RR")) {
p = p.replace("RR", "");
}
// ์ฐ์ฐ ์ํ
process(n, p, arr);
}
}
private static void process(int n, String p, int[] arr) {
int left = 0, right = n - 1;
boolean flag = true;
for (int i = 0; i < p.length(); i++) {
// ๋ค์ง๊ธฐ
if (p.charAt(i) == 'R') {
flag = !flag;
}
// ๋งจ ์ ์ง์ฐ๊ธฐ
else {
if (n == 0) {
System.out.println("error");
return;
}
n--;
if (flag) left++;
else right--;
}
}
if (n==0) {
System.out.println("[]");
return;
}
StringBuilder sb = new StringBuilder();
sb.append('[');
if (flag) {
for (int i = left; i <= right; i++) {
sb.append(arr[i]).append(',');
}
} else {
for (int i = right; i >= left; i--) {
sb.append(arr[i]).append(',');
}
}
sb.deleteCharAt(sb.length() - 1);
sb.append(']');
System.out.println(sb);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ฐ์ R์ฐ์ฐ 2๋ฒ์ ๋ถํ์ํ ์ฐ์ฐ์ด๋ฏ๋ก p์์ ๋ชจ๋ "RR"์ ์ ๊ฑฐํ๋ค.
- boolean ๋ณ์ flag๋ฅผ ํตํด ์ ์ ์ํ์ธ์ง ๋ค์งํ ์ํ์ธ์ง ๊ตฌ๋ถํ๋ค.
- D์ฐ์ฐ์์ ๋ค์งํ ์ํ๋ right, ์ ์์ left๋ฅผ ํ ์นธ ์ด๋์ํจ๋ค.
- ์์์ ๊ฐ์ ๊ตฌ๋ถ์ ๊ฐํธํ๊ฒ ํ๊ธฐ ์ํด์ int๋ณ์ n์ ์ฌ์ฉํ๋ค.
- n์ด 0์ธ๋ฐ D์ฐ์ฐ์ด ์ํ๋๋ฉด "error"๋ฅผ ์ถ๋ ฅํ๋ค.
- ๋ชจ๋ ์ฐ์ฐ์ด ๋๋ ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
- n์ด 0์ด๋ฉด ๋น ๋ฐฐ์ด์ ์ถ๋ ฅํ๋ค.
- n์ด 0์ด์์ด๋ฉด ๋ค์งํ ๋ฐฉํฅ์ ๋ง์ถฐ์ ๋ฐฐ์ด์ ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- left์ right๋ก ๋จ์ ์์์ ๊ฐ์๋ฅผ ์ฒดํฌํ๋ ค๋ค๊ฐ ์ฝ๋๊ฐ ๋ณต์กํด์ ธ์ ๋ง์ด ํ๋ฆฐ ๊ฒ ๊ฐ๋ค.
- ๊น๋ํ๊ฒ n์ ๋๊ณ ํ์ด์ ํด๊ฒฐํ๋ค.
- ๋ฌธ์ ๋ถ์๊ณผ ํ์ด ๊ณํ์ ์ ์ด๊ฐ๋ฉฐ ํ์๋ค.
- ์ฒ์์ string์ผ๋ก p๋ฅผ ๋๋ ค๊ณ ํ๋๋ฐ, ์๋ฌ๊ฐ ๋ง์ด๋์ ๋ค์ ํ ๋ฒ ๋ฌธ์ ๋ฅผ ์ ๊ทผํด int๋ฐฐ์ด๋ก ์ ์ฅํ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1463 : 1๋ก ๋ง๋ค๊ธฐ (0) | 2023.03.30 |
---|---|
BOJ_7662 : ์ด์ค ์ฐ์ ์์ ํ (0) | 2023.03.29 |
BOJ_9019 : DSLR (0) | 2023.03.21 |
BOJ_14502 : ์ฐ๊ตฌ์ (0) | 2023.03.08 |
BOJ_1916 : ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2023.03.08 |