반응형
https://www.acmicpc.net/problem/8958
코드를 살펴보자.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String arr[] = new String[sc.nextInt()];
for(int i=0; i<arr.length; i++) {
arr[i] = sc.next();
}
for(int i=0; i<arr.length; i++) {
int cnt = 0;
int sum = 0;
for(int j=0;j<arr[i].length();j++) {
if(arr[i].charAt(j)=='O') {
cnt++;
} else {
cnt = 0;
}
sum +=cnt;
}
System.out.println(sum);
}
}
}
OX가 몇 번 입력되는지 첫번째 줄에 말해주지만, 그걸 사용하지 않아도 된다.
String arr[] = new String[sc.nextInt()];
String 타입의 arr 문자열에 바로 입력받도록 설정한다.
for(int i=0; i<arr.length; i++) {
arr[i] = sc.next();
}
arr안에 arr이 가지고 있는 갯수 N만큼 입력받은 수를 저장한다.
for(int i=0; i<arr.length; i++) {
int cnt = 0;
int sum = 0;
for(int j=0;j<arr[i].length();j++) {
if(arr[i].charAt(j)=='O') {
cnt++;
} else {
cnt = 0;
}
sum +=cnt;
}
System.out.println(sum);
}
cnt 와 sum을 정수로 설정을 하고,
j가 들어간 for문을 사용해 i번째의 줄에 있는 문자열을 들여다 보자.
arr[i].length() 를 사용해 i번째 줄에 있는 문자열의 자릿수만큼 반복해서 한 자릿수씩 들여다 본다.
if - 만약
arr[i].charAt(j) - arr[]의 i번째 줄에 있는 문자열에서 j번째 자릿수가
=='O' - O과 같다면
cnt++; - cnt에 1을 더할것이고
else - O이 아니면
cnt = 0; - cnt는 0이다.
그리고 if문이 한 번 반복될 때마다 sum에 cnt값을 더할 것이다.
이렇게 구현된다.
반응형
'백준 알고리즘' 카테고리의 다른 글
백준 [1546] 평균 - 자바 풀이 (0) | 2023.05.25 |
---|---|
백준 [10810] 공 넣기 - 자바 풀이 (0) | 2023.05.19 |
백준 [11720] 숫자의 합 - 자바 풀이 (0) | 2023.05.18 |
백준 [11654] 아스키 코드 - 자바 풀이 (0) | 2023.05.18 |
백준 [2920] 음계 - 자바 풀이 (0) | 2023.05.17 |