elesis's haunt

8958 OX퀴즈 본문

백준~문풀 후 최적화 추가~/단계별로 풀어보기

8958 OX퀴즈

elesis 2021. 9. 27. 10:57

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