백준 8958 Java 자바 OX퀴즈 String
자 간단하게 'O'는 1점이고 'O'뒤에 'O'가있으면 점수에 2를 더하고 그 뒤에 또 'O'가 연속적으로 있으면 3을 점수에 더한다. 이다. 그 사이에 한 번이라도 'X'가 끼게 되면 다음번 'O'에서는 다시 1점을 더하게 되는 시스템.
뭐 이런식으로 카운트해서 한 줄에 있는 총 합산 점수를 출력하는 것이다.
맨 첫줄에 입력할 줄의 수를 정수로 입력하고 다음 줄 부터 OXOXOXO 대충 이렇게...
간단하게 짤 수 있다.
먼저 총 점수를 출력하는 것이기 때문에 sum값에 카운트한 값을 계속 더해나가면 된다.
처음 O를 만나면 1을 더하고 if 그 다음이 O면 2를 더하고 else 아니면 카운트값을 0으로 바꾸고 더하지 않는다.
다음 O는 다시 1부터 카운트한다.
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
|
import java.util.Scanner;
//baekjoon_8958
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
String str;
for(int i=0; i<t; i++)
{
str = sc.next();
int sum=0, cnt=0;
for(int j=0; j<str.length(); j++)
{
if(str.charAt(j) == 'O')
{
cnt++;
sum += cnt;
}
else
cnt = 0;
}
System.out.println(sum);
}
}
}
|
cs |
line 7 : 테스트케이스 입력.
line 9 : OX 문자열을 담을 String 선언.
line 10 : t만큼 반복해서 검사하고 출력한다.
line 12 : OX로 이루어진 문자열 입력.
line 13 : 총점수 sum, 연속된 O문자를 셀 cnt변수 선언하고 초기화
line 14 : OX는 0~80이내의 문자열이다. 입력된 크기만큼 반복시켜서 검사한다.(.length();)
line 16 : 문자가 O인지 체크한다. str.charAt()는 str문자열에서 해당 인덱스의 자리한 문자 하나를 빼오는 것이다.
j는 0부터 길이만큼 반복이므로 전체를 검사한다. 만약 O이면 cnt값을 1증가시키고 sum에다 더해준다.
if문에 들어갔으면 바로 다음 문자를 검사하는데 또 O면 if문안으로 들어가서 값을 증가시키고 더해주지만 만난 문자가 X면 else문으로 가서 cnt값을 다시 0으로 변경해준다.
line 24 : 14행의 for문이 끝나면 sum을 출력한다.~!
!
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
백준 15596번 자바 java 정수 N개의 합 (0) | 2020.09.09 |
---|---|
백준 4344번 java 자바 평균은 넘겠지 (2) | 2020.09.08 |
백준 1546번 java 평균 (배열) (0) | 2020.09.07 |
백준 3052번 java 나머지 (boolean 배열) (4) | 2020.09.04 |
백준 2577번 java 숫자의 개수 (Array) (0) | 2020.09.04 |
댓글