[ 백준 8958번 문제 ]
이 문제를 요약하자면 O의 갯수를 누적해서 카운트하고 X를 만나면 카운트를 0으로 초기화 시키라는 말이다.
그러니까, OOO이 있다고 치면 O의 개수는 총 3개지만 3을 누적시키면 1 + 2 + 3 = 6이 된다.
이 부분만 이해하고 있다면 그리 어렵지 않은 문제이다.
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
|
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int num = Integer.parseInt(bf.readLine());
String [] arry = new String[num];
for(int i = 0; i < num; i++){
arry[i] = bf.readLine();
}
for(int i = 0; i < num; i++){
int count = 0; // 'O'의 개수 카운트
int hap = 0; // 누적 합산
for(int k = 0; k < arry[i].length(); k++){ //각 인덱스의 길이가 다름
if(arry[i].charAt(k) == 'O'){ //한 인덱스에 여러문자열을 분리시켜서 'O' 비교시킴.
count++;
hap += count;
}
else{
count = 0;
}
}
sb.append(hap).append('\n');
}
System.out.println(sb);
}
}
|
cs |
먼저, 몇개의 배열을 이용할지 묻고,
그 배열의 갯수만큼 입력값을 받는다.
입력받은 문자열은 charAt을 이용해서 한문자씩 'O'인지 비교하고
'O'이면 count를 1증가 시키면서 hap에 count 값 누적 1 + 2 + 3 ...
그러다가 'O'가 아닌 것을 만나면 count 초기화
이것들은 Sting 배열이니 StringBuilder로 연결할 수 있다. \n과 함게
연결시켜서 마지막에 출력하고 끝난다.
'알고리즘' 카테고리의 다른 글
[코드업 1099번] 자바 풀이 성실한 개미 (0) | 2021.02.28 |
---|---|
[코드업 자바 1098번 문제] 설탕과자 뽑기 접근방법 (0) | 2021.02.02 |
[코드업 1091번 자바] [기초-1차원배열] 이상한 출석 번호 부르기1 (0) | 2021.01.30 |
[코드업 자바 1086번 문제] 그림 파일 저장용량 계산하기 (0) | 2021.01.29 |
[코드업 1082번 자바] 16진수 구구단 (0) | 2021.01.26 |