백준 - 알고리즘
백준 (JAVA) - OX퀴즈 (8958)
정리하고기록하자
2022. 2. 10. 13:50
반응형
백준 - 알고리즘 1차원배열 OX퀴즈(8958) 문제
문제 : "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
입력 : 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.
일단 O , X 란 문자열을 입력 하기 때문에 문자 배열을 선언 해야 한다.
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
/*
* arr : 문자열 배열은 선언한다. ( 문제에서 'O' or 'X' 를 입력 하기 때문에 )
* */
String[] arr = new String[sc.nextInt()];
}
}
문자열 배열 선언 후 그 안에 원소의 값들을 입력 해야 한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
/*
* arr : 문자열 배열은 선언한다. ( 문제에서 'O' or 'X' 를 입력 하기 때문에 )
* */
String[] arr = new String[sc.nextInt()];
/*
* 배열 크기 만큼 반복문을 돌린 후
* 배열 원소의 값을 넣어 준다.
* */
for( int i = 0; i < arr.length; i ++) {
arr[i] = sc.next();
System.out.println("arr[i] : " + arr[i]); // 일단 찍어보자 어찌 나오는지
}
/*
* 여기까지 배열 상황
* ex ) ['OXOXOXOX','OXXXOXOOO','OXXOXOXXO']
* */
sc.close();
}
}
일단 여기 까지 배열 선언 하고
그 배열 안에 원소들을 입력 하는거 까지 했다.
이제 연속되는 문자들의 합을 구하자
// 첫번째 반복문은 배열의 크기 만큼 반복문
for( int i = 0; i < arr.length; i ++){
}
// 첫번째 반복문은 배열의 크기 만큼 반복문
for( int i = 0; i < arr.length; i ++){
int count = 0;
int sum = 0;
// 두번째 반복문은 배열 원소의 길이 만큼 반복문
for ( int j = 0 ; j < arr[i].length(); j++ ) {
if( arr[i].charAt(j) == 'O') {
count++;
} else {
count = 0;
}
sum += count;
}
// 반복문이 끝나면 출력
System.out.println(sum);
}
첫번째 반복문에서는 배열의 크기 만큼 반복문을 돌린다.
두번째 반복문에서는 배열의 원소의 길이 만큼 반복문을 돌린다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
// arr : 문자열 배열은 선언한다. ( 문제에서 'O' or 'X' 를 입력 하기 때문에 )
String[] arr = new String[sc.nextInt()];
/*
* 배열 크기 만큼 반복문을 돌린 후
* 배열 원소의 값을 넣어 준다.
* */
for( int i = 0; i < arr.length; i ++) {
arr[i] = sc.next();
System.out.println("arr[i] : " + arr[i]); // 일단 찍어보자 어찌 나오는지
}
/*
* 여기까지 배열 상황
* ex ) ['OXOXOXOX','OXXXOXOOO','OXXOXOXXO']
* */
sc.close();
// 첫번째 반복문은 배열의 크기 만큼 반복문
for( int i = 0; i < arr.length; i ++){
int count = 0;
int sum = 0;
// 두번째 반복문은 배열 원소의 길이 만큼 반복문
for ( int j = 0 ; j < arr[i].length(); j++ ) {
if( arr[i].charAt(j) == 'O') {
count++;
} else {
count = 0;
}
sum += count;
}
// 반복문이 끝나면 출력
System.out.println(sum);
}
}
}
그럼 끝!
반응형