반응형
https://www.acmicpc.net/problem/8958
주의할 점
- 각 케이스마다 점수를 출력한다(println).
- O 의 연속수 만큼 점수를 누적하여 합산하고 X가 나오면 누적값은 0으로 초기화 된다.
- 문자열 O X 이기 떄문에 배열은 String 이다.
방법1
Scanner를 이용하기
1.for문 이용
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
|
import java.util.Scanner;
public class Array8958 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String [] arr = new String[N];
for (int i = 0; i<arr.length; i++){
arr[i] = sc.next();
}
sc.close();
for (int i =0; i<arr.length; i++){
int plus = 0;
int sum = 0;
for (int j = 0; j<arr[i].length(); j++){
if (arr[i].charAt(j)=='O'){
plus++;
}
else {
plus = 0;
}
sum += plus;
}
System.out.println(sum);
}
}
}
|
cs |
2. for each문 이용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
for (String s : arr) {
int plus = 0;
int sum = 0;
for (int j = 0; j < s.length(); j++) {
if (s.charAt(j) == 'O') {
plus++;
} else {
plus = 0;
}
sum += plus;
}
System.out.println(sum);
}
|
cs |
BufferReader이용하기
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
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Array8958BufferReader {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] arr = new String[N];
for (int i = 0; i<arr.length; i++){
arr[i] = br.readLine();
}
for (String s : arr) {
int plus = 0;
int sum = 0;
for (int j = 0; j < s.length(); j++) {
if (s.charAt(j) == 'O') {
plus++;
} else {
plus = 0;
}
sum += plus;
}
System.out.println(sum);
}
}
}
|
cs |
-일단 케이스의 갯수를 받은 후 arr의 길이로 지정해준다.
-각 케이스는 OX로 이루어져 있기때문에 arr을 String 타입의 배열에 각각의 원소에 문자열을 저장해준다.
-이후 이중 for문을 이용하는데 큰 for문이 각 케이스를 한바퀴 돌고 작은 for문이 각 케이스의 문자열을 하나씩 돌게된다.
-if문을 이용해 각 문자열이 O와 맞는지 비교한 후 O일 경우 plus값을 1씩 증가 X일 경우 다시 plus값은 0으로 초기화되며 연속된plus값은 sum에 누적되어 출력해준다.
반응형
'알고리즘 > 백준(BAEKJOON)' 카테고리의 다른 글
백준 /11720 자바/숫자의 합 (0) | 2021.09.15 |
---|---|
4673 셀프넘버 JAVA 백준 문제풀이 (0) | 2021.09.13 |
1546/평균/1차원 배열/자바/JAVA (0) | 2021.03.15 |
3052/백준/JAVA /1차원 배열/나머지 구하기/ HashSet (0) | 2021.03.08 |
10871/X보다 작은 수/자바 /백준 (0) | 2020.08.16 |