본문 바로가기
프로그래밍/백준 알고리즘 코드

백준 8958 Java 자바 OX퀴즈 String

by 졸린이 2020. 9. 7.
반응형

백준 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을 출력한다.~!

 

!

반응형

댓글