๋ฐ์ํ
๋ฌธ์
https://www.acmicpc.net/problem/1343
1343๋ฒ: ํด๋ฆฌ์ค๋ฏธ๋ ธ
์ฒซ์งธ ์ค์ ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์์๋ ๋ต์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฎ์ ์ ์์ผ๋ฉด -1์ ์ถ๋ ฅํ๋ค.
www.acmicpc.net
์คํ.. ์ด๊ฒ ํด๋ฆฌ์ค๋ฏธ๋ ธ๊ตฌ๋..
๊ทธ๋ฅ ํผ์ฆ,, ๋ธ๋ญ๋ง์ถ๊ธฐ ๋ผ๊ณ ๋ง ์๊ณ ์์๋ค.
ํ์ด
์ฒ์์๋ .์ ๊ธฐ์ค์ผ๋ก split์ ํด์ฃผ์์ง๋ง .X...๊ณผ ๊ฐ์ด ๋ค์ ์ ์ด ์ฌ๋ฌ๊ฐ๊ฐ ์๋ ์์ ๋ ๋ค ํ๋ฆฌ๊ฒ ์ถ๋ ฅ๋์๋ค.
๊ทธ๋์ split์ ํ์ง ์๊ณ , charAt์ผ๋ก .์ด ๋์ค๊ธฐ ์ ๊น์ง๋ง ๋ฐ์์ฃผ๊ณ ๊ฒ์ฌํ๋ ๋ก์ง์ ์งฐ๋ค.
package algorithm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public String change(String text) {
String answer = "";
int length = text.length();
if (length % 2 == 1) { // ๋ง์ฝ ์๋ฅธ ๋ถ๋ถ๋ค์ด ํ์๋ผ๋ฉด -1 ๋ฐํ
return "-1";
}
while (length > 0) {
if (length % 4 == 0 || ((length - 2) % 4 == 0 && (length - 2) > 0)) { // AAAA๋ถํฐ ๋จผ์ ์ฑ์์ฃผ๊ธฐ
answer += "AAAA";
length -= 4;
} else if (length % 2 == 0) { // ๊ทธ ๋ค์์ BB ์ฑ์์ฃผ๊ธฐ
answer += "BB";
length -= 2;
}
}
return answer;
}
public String polyomino(String input) {
String[] arr = input.split("\\.");
// .์ ์ ๊ท ํํ์์์ ์ด๋ ํ ๋ฌธ์์๋ ๋งค์นญ๋๋ ์์ผ๋์นด๋ ๋ฌธ์๋ก ๊ฐ์ฃผ๋๊ธฐ ๋๋ฌธ์ \\.์ผ๋ก ์จ์ฃผ๋ฉด์ .์ ๊ธฐ์ค์ผ๋ก ์๋ฅธ๋ค.
String answer = "";
int index = 0;
int flag = 0;
String text = "";
String changeText = "";
while (index < input.length()) {
if (input.charAt(index) == '.') {
if (text.length() > 0) {
changeText = change(text);
if (changeText.equals("-1")) {
flag = 1;
}
answer += change(text);
}
text = "";
answer += ".";
} else {
text += String.valueOf(input.charAt(index));
}
index++;
}
if (text.length() > 0) {
changeText = change(text);
if(changeText.equals("-1")) {
flag = 1;
}
answer += change(text);
}
return flag == 0 ? answer : "-1";
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
Main m = new Main();
String answer = m.polyomino(input);
System.out.println(answer);
}
}
์ ๋ต
๋ฐ์ํ
'๐ฐ๐๐๐๐๐๐๐๐ > ๐ฑ๐๐๐๐๐๐๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/Java] ์ฐฝ์๋ง์ 3028 (0) | 2023.11.13 |
---|---|
[๋ฐฑ์ค/Java] ๊ฒฝ๊ณ 3029 (1) | 2023.11.12 |
[๋ฐฑ์ค/Java] ๋กํ 2217 (1) | 2023.11.09 |
[๋ฐฑ์ค/Java] ์๋ฐ์ ๊ฐํธ 1758 (0) | 2023.11.08 |
[๋ฐฑ์ค/Java] ๋ฉ๋ฉ์ด ์ฐ๋ค๋ฌ๊ธฐ 1669 (1) | 2023.11.07 |