일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Scanner class
- C언어
- Scanner
- error
- 데이터
- MySQL
- 변수
- java프로그래밍
- Spring
- 백준알고리즘
- java
- 반복문
- 하드웨어
- IF문
- 함수
- 자료구조
- 파이썬프로그래밍기초
- FOR문
- 스캐너클래스
- for
- 배열
- 1차원배열
- 기본
- 스캐너
- 유비쿼터스
- 알고리즘
- 자바
- IF
- 백준
- IFELSE
Archives
- Today
- Total
정리하고기록하자
백준 (JAVA) - OX퀴즈 (8958) 본문
반응형
백준 - 알고리즘 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);
}
}
}
그럼 끝!
반응형
'백준 - 알고리즘' 카테고리의 다른 글
백준 (JAVA) - 수 정렬하기 2 (2751) (0) | 2022.03.03 |
---|---|
백준 (JAVA) - 정수 N개의 합 (15596) (0) | 2022.02.11 |
백준 (JAVA) - 평균 (1546) (0) | 2022.02.10 |
백준 (JAVA) - 나머지 (3052) (0) | 2021.11.22 |
백준 (JAVA) - 숫자의 개수 (2577) (0) | 2021.11.17 |