문제 링크
https://www.acmicpc.net/problem/8958
나의 코드 (java)
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
// 입력 받을 개수
int n = sc.nextInt();
// nextInt의 개행문자 제거
sc.nextLine();
for (int i=0; i<n; i++){
// 각 줄의 입력을 받음
String s = sc.nextLine();
// 받은 입력을 각 문자로 분해하여 배열에 추가
char arr[] = s.toCharArray();
// 연속된 'O'를 받을 때 가산점을 줄 변수
int cnt = 0;
// 결과 값을 저장할 변수
int result = 0;
for (int j=0; j<s.length(); j++){
// 'O'이면 가산점 카운트를 하나 증가시키고 result에 값을 더함
if (arr[j] == 'O'){
cnt++;
result += cnt;
} else {
// 'X'가 나왔을 때 가산점 카운트 초기화
cnt = 0;
}
}
// 결과 출력
System.out.println(result);
}
}
}
입력을 nextLine()으로 받아서 char arr[] = s.toCharArray();를 통해서 문자열을 문자 각각으로 배열에 받습니다.
가산점을 계산할 변수 cnt를 설정하고 for문을 통해서 arr[]에 들어있는 첫 번째 원소부터 차례대로 'O'인지 검증합니다. 맞다면 cnt++를 통해서 가산점을 증가시키고 'O'가 아니라면 가산점을 0으로 초기화시킵니다.
for문을 통해 배열을 처음부터 끝까지 검증하면 결과를 출력합니다.
'코딩공부 > 백준 (java)' 카테고리의 다른 글
[백준 15596] 정수 N개의 합 (java) (0) | 2021.07.07 |
---|---|
[백준 4344] 평균은 넘겠지 (java) (0) | 2021.07.05 |
[백준 1546] 평균 (java) (0) | 2021.07.05 |
[백준 3052] 나머지 (java) (0) | 2021.07.05 |
[백준 2577] 숫자의 개수 (java) (0) | 2021.07.05 |
댓글