채점하기 - 제1회 구름코드챌린지 기출 문제

in #kr6 years ago

algorithm.png

문제


중학교 선생님인 구름이는 자신이 출제한 기말고사 문제를 채점하는 중 입니다.

문제마다 o 또는 x 표시가 되어있는데 점수를 매기는 방식이 특이합니다.

o는 점수가 누적되는 방식으로 채점되는데 이전부터 자신을 포함한 연속된 o의 개수 만큼의 점수로 채점이 됩니다.

예를 들면 oooxoo가 있다면 순서대로 1 + 2 + 3 + 0 + 1 + 2 = 9점이 되겠습니다.

학생이 푼 시험지에 정답, 오답 여부가 표시되어있을 때 총점을 구하는 프로그램을 작성하여 구름이를 도와주세요.

출처 - 구름


풀이


  1. 주어진 문자열 길이만큼 순회합니다.

  2. i 번째 캐릭터의 값을 검사합니다.

  3. o 라면 보너스 점수를 증가시키고 총점에 합산합니다.

  4. x 라면 보너스 점수를 0으로 초기화합니다.

public class Hello {
    public static void main(String[] args) {
        String str = "oooxoo";
        int bonus = 0;  // 보너스 점수를 누적 시킴
        int sum = 0;    // 총점

        for (int i = 0; i < str.length(); i++) {
            // case: 'o'
            if (str.charAt(i) == 'o') {
                bonus++;        // 보너스 점수 증가 
                sum += bonus;   // 총점 증가
            }
            // case: 'x'
            else {
                bonus = 0;      // 보너스 점수 0으로 초기화
            }
        }
        
        System.out.println(sum);    // 결과 출력
    }
}


> java Hello
9