250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 라이브러리
- prettier-code formatter
- React
- 한빛아카데미
- JavaScript
- 초연결사회의 데이터통신과 네트워킹
- 일본어
- 백준
- java
- 자바
- 초연결 사회의 데이터통신과 네트워킹
- quizlet
- Algorithm
- 이벤트
- 데이터통신
- scrolly
- 연습문제
- reactjs code snippets
- Node.js
- ArrayList
- ScrollToPlugin
- html
- 알고리즘
- 단어장
- 스크롤
- 자바스크립트
- gsap
- JLPT
- 함수
- 네트워킹
Archives
- Today
- Total
umilove98의 블로그
백준 1343 Java 본문
반응형
입력값 전체를 한 문자씩 순회
X가 나오면 카운트해두고 . 을 만나거나 마지막 문자에 도달하면 카운트해둔 x 의 값을 AAAA, BB로 구성할 수 있는지 판단한 후에 불가능하면 -1 출력
가능하면 카운트한 수를 먼저 AAAA로 가능한 만큼 채우고 나머지를 BB로 채움
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static String output = "";
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String st = br.readLine();
char[] input = st.toCharArray(); // 입력값을 배열에 저장
int cnt = 0;
char now;
for(int i = 0; i < input.length; i++) { // 입력값 배열에서 한 char 씩 순회
now = input[i];
if (now == 'X') { // 현재 값이 X인 경우
cnt++; // 지나온 X의 개수를 누적시키는 변수
}
if (now == '.') { // 현재 값이 .인경우 그전까지 누적된 X의 개수가 홀수면 -1 찍고 종료 짝수인 경우 process 함수에 돌림
if(cnt % 2 != 0) {
System.out.println("-1");
return;
}
process(cnt);
output = output + "."; // X의 값을 AAAA, BB로 대체하여 추가한 뒤에 현재 값인 . 도 출력 문자열에 추가시켜줌
cnt = 0; // 지금까지 누적된 X를 AAAA, BB로 대체하여 추가하였으므로 cnt를 초기화해 새로 X 누적 시작
}
if(i == input.length -1) { // 현재 index위치가 입력값의 마지막인 경우 남아있는 cnt값만큼을 출력해야하므로 홀수인지 확인하고 process 함수에 돌림
if(cnt % 2 != 0) {
System.out.println("-1");
return;
}
process(cnt);
cnt = 0;
}
}
System.out.println(output);
}
static void process(int n) { // 중간에 채워야하는 X의 개수가 주어지면 AAAA를 이용하여 출력 문자열에 최대한 채운 뒤 나머지 수만큼 BB를 이용하여 채움
int a = n / 4;
int b = (n % 4) / 2;
for(int j = 0; j < a; j++) {
output = output + "AAAA";
}
for(int j = 0; j < b; j++) {
output = output + "BB";
}
}
}
|
cs |
반응형
'algorithm > 백준' 카테고리의 다른 글
백준 1380 Java (0) | 2021.07.31 |
---|---|
백준 1247 Java (0) | 2021.07.30 |
백준 1331 Java (0) | 2021.07.28 |
백준 1085 Java (0) | 2021.07.28 |
백준 1316 Java (0) | 2021.07.27 |