๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/1343)
< ํด๋ฆฌ์ค๋ฏธ๋ ธ >
๋ฌธ์ ํ์ด
. ์ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 4์ ๋ฐฐ์, 2์ ๋ฐฐ์, 6์ ๋ฐฐ์๋ผ๋ฉด ํด๋ฆฌ์ค๋ฏธ๋ ธ๋ก ๋ฎ์ ์ ์๋ค๋ ๋ป์ด๋ค.
์์ ์กฐ๊ฑด์ ํด๋นํ๋ค๋ฉด ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์๋ ๋ต์ ์ถ๋ ฅํด์ผ ํ๋ฏ๋ก A๋ฅผ ๋จผ์ ์์ ๋๊ธฐ ์ํด ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 4 ์ด์์ด๋ฉด A๋ก ๋ฎ๋๋ค. ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 2์ผ ๋๋ง B๋ก ๋ฎ๋๋ค. ์ด ์ด์ธ๋ ํด๋ฆฌ์ค๋ฏธ๋ ธ๋ก ๋ฎ์ ์ ์์ผ๋ฏ๋ก -1์ ์ถ๋ ฅํ๊ณ ์ข ๋ฃํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class _1343_ { // ํด๋ฆฌ์ค๋ฏธ๋
ธ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String board = bf.readLine();
String[] arr = board.split("\\.");
String result = "";
boolean flag = false;
int idx = 0;
while (idx < board.length() && board.charAt(idx) == '.') {
result += ".";
idx += 1;
}
for (String x : arr) {
int len = x.length();
if (len % 4 == 0 || len % 2 == 0 || len % 6 == 0) {
while (len > 0) {
if (len >= 4) {
result += "AAAA";
len -= 4;
idx += 4;
} else if (len == 2) {
result += "BB";
len -= 2;
idx += 2;
}
}
} else {
flag = true;
break;
}
while (idx < board.length() && board.charAt(idx) == '.') {
result += ".";
idx += 1;
}
}
if (flag) {
System.out.println(-1);
} else {
System.out.println(result);
}
}
}
Main
๋ณ์)
board : ๋ณด๋ํ
arr : '.'์ ๊ธฐ์ค์ผ๋ก ๋๋ ๋ฌธ์์ด ๋ฐฐ์ด
result : ๋ต
flag : ํด๋ฆฌ์ค๋ฏธ๋ ธ๋ก ๋ฎ์ ์ ์๋์ง ์ฌ๋ถ
idx : ๋ฌธ์์ด ์ธ๋ฑ์ค
- ๋ณด๋ํ(board) ์ ๋ ฅ
- ๋ณด๋ํ์ '.'์ ๊ธฐ์ค์ผ๋ก ๋๋ ๊ฒ์ ์ ์ฅ(arr)
- ๋ณด๋ํ ์๋ถ๋ถ์ด '.'์ผ ์ ์์ผ๋ฏ๋ก '.'์ธ์ง ํ์ธ ํ '.'์ด๋ผ๋ฉด ์ ๋ต์ '.' ์ถ๊ฐ
- '.'์ ๊ธฐ์ค์ผ๋ก ๋๋ ๊ฒ์(arr) ํ์
: ๋ฌธ์์ด ๊ธธ์ด๊ฐ 4์ ๋ฐฐ์, 2์ ๋ฐฐ์ ๋๋ 6์ ๋ฐฐ์๋ผ๋ฉด ํด๋ฆฌ์ค๋ฏธ๋ ธ๋ก ๋ฎ์ ์ ์์ผ๋ฏ๋ก ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 4๋ณด๋ค ํฌ๋ค๋ฉด A๋ก ๋ฎ๊ณ ๊ธธ์ด ์ฐจ๊ฐ, ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 2๋ผ๋ฉด B๋ก ๋ฎ๊ณ ๋ฌธ์์ด ๊ธธ์ด ์ฐจ๊ฐํ์ฌ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์ด ๋ ๋๊น์ง ๋ฐ๋ณต
: ๋ฌธ์์ด ๊ธธ์ด๊ฐ 4์ ๋ฐฐ์, 2์ ๋ฐฐ์ ๋๋ 6์ ๋ฐฐ์๊ฐ ์๋๋ผ๋ฉด ํด๋ฆฌ์ค๋ฏธ๋ ธ๋ก ๋ฎ์ ์ ์์ผ๋ฏ๋ก ๋ฐ๋ก ์ข ๋ฃ
: ์ค๊ฐ์ '.'์ด ๋ช ๊ฐ ๋ค์ด์๋์ง ๋ชจ๋ฅด๋ฏ๋ก ๋ฌธ์์ด์ ์ธ๋ฑ์ค๋ฅผ ํตํด '.' ์ถ๊ฐ
- ํด๋ฆฌ์ค๋ฏธ๋ ธ๋ก ๋ฎ์ ์ ์์ผ๋ฉด -1 ์ถ๋ ฅ/ ๋ฎ์ ์ ์์ผ๋ฉด result ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1449_์๋ฆฌ๊ณต ํญ์น (0) | 2023.09.14 |
---|---|
[Baekjoon] 1439_๋ค์ง๊ธฐ (0) | 2023.09.13 |
[Baekjoon] 1976_์ฌํ ๊ฐ์ (0) | 2023.09.01 |
[Baekjoon] 23843_์ฝ์ผํธ (0) | 2023.08.31 |
[Baekjoon] 25381_ABBC (0) | 2023.08.30 |