Notice
Recent Posts
Recent Comments
Link
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- jsonb select
- subversion
- 제수가 0입니다
- SVN
- linux
- 백준
- 사용법
- rocky linux
- 메뉴얼
- 백준 JAVA
- 1773번
- putty
- DBeaver
- install
- jenkins
- jaekjoon java
- ora-01476
- java
- Oracle
- boj
- PostgreSQL
- Rocky Linux 9
- 환경번수
- docker
- bekjoon
- javascript
- 백준 java jaekjoon JAVA
- MAC
- 자바
- baekjoon
Archives
기록하는 개발자
[백준 1343번] 폴리오미노 - JAVA 알고리즘 본문
1343번 |
문제 | |
민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB 이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다. 폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오. |
|
입력 | |
첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다. | |
출력 | |
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. | |
예제 입력 | 예제 출력 |
XX.XXXXXXXXXX..XXXXXXXX...XXXXXX | BB.AAAAAAAABB..AAAAAAAA...AAAABB |
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.ParseException;
public class Main {
public static void main(String[] args) throws IOException, ParseException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 선언
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // 선언
String str = br.readLine();
String check = "true";
int leng = 0;
String[] strArr = str.split("\\.", -1); // 공백도 포함하기 위해서 -1 추가
for (int i = 0; i < strArr.length; i++) { // 홀수 체크
if (strArr[i].length() % 2 != 0) {
check = "false"; // 변환불가
break;
}
}
if (check == "true") { //배열이 짝수로 이루어져있을시
for (int i = 0; i < strArr.length; i++) { //구분마다 진행
leng = strArr[i].length();
while (true) {
if (leng >= 4) { //4칸이상이면 AAAA출력
bw.write("AAAA");
leng = leng - 4;
} else if (leng >= 2) { //2칸이상 BB출력
bw.write("BB");
leng = leng - 2;
} else { //이외 종료
break;
}
}
if (i < strArr.length - 1) {
bw.write("."); //마지막을 제외하고 .출력
}
}
} else {
bw.write("-1"); //변환 불가능하다면
}
bw.close();
br.close();
}
}
더보기
.split을 사용할때 구분자 뒤에 -1를 넣어주면 뒤에 남은 공백도 포함시킨다.
개인적으로 정리한 내용을 간단하게 풀어 작성했습니다. 이해가 안가는 부분은 댓글 남겨주시면 설명해드리겠습니다. |
'Baekjoon Online Judge' 카테고리의 다른 글
[백준 1996번] 지뢰찾기 - JAVA 알고리즘 (0) | 2022.06.17 |
---|---|
[백준 1427번] 소트인사이드 - JAVA 알고리즘 (0) | 2022.06.15 |
[백준 1094번] 막대기 - JAVA 알고리즘 (0) | 2022.06.14 |
[백준 2920번] 음계- JAVA 알고리즘 (0) | 2022.06.08 |
[백준 2675번] 문자열반복 - JAVA 알고리즘 (0) | 2022.06.08 |
Comments