elesis's haunt
8958 OX퀴즈 본문
1. 배열, Scanner, 2중for문
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String arr[] = new String[in.nextInt()];
for (int i = 0; i < arr.length; i++) {
arr[i] = in.next();
}
in.close();
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);
}
}
}
2. 배열, BufferedReader, StringBuilder, 2중for문
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int test_case = Integer.parseInt(br.readLine()); //테스트 케이스
String arr[] = new String[test_case];
for (int i = 0; i < test_case; i++) {
arr[i] = br.readLine();
}
for (int i = 0; i < test_case; 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;
}
sb.append(sum).append('\n');
}
System.out.print(sb);
}
}
3. 배열X, getBytes(), for-each
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int test_case = Integer.parseInt(br.readLine()); // 테스트 케이스
for (int i = 0; i < test_case; i++) {
int cnt = 0; // 연속횟수
int sum = 0; // 누적 합산
for (byte value : br.readLine().getBytes()) {
if (value == 'O') {
cnt++;
sum += cnt;
}
else {
cnt = 0;
}
}
sb.append(sum).append('\n');
}
System.out.println(sb);
}
}
getBytes() : 입력 문자열을 byte 단위의 배열로 반환시켜주는 메소드
→ for-each 사용가능
'백준~문풀 후 최적화 추가~ > 단계별로 풀어보기' 카테고리의 다른 글
1546 평균 (0) | 2021.09.24 |
---|---|
3052 나머지 (0) | 2021.09.24 |
2577 숫자의 개수 (0) | 2021.09.23 |
2562 최댓값 (0) | 2021.09.23 |
10818 최소, 최대 (0) | 2021.09.16 |
Comments