문제 조건

 

 

문제

 

 

입력

 

 

출력

 

 

문제 분석

- 문제는 각 조건에 맞게 문자열 케이스를 나누어주면 된다.

 

 

문제 풀이

1) c, d, 기타 등등 조건을 만족하는 케이스를 나눈다.

2) 케이스를 나누고 다음 글자가 해당 조건을 만족하는지 확인하여 처리한다. (cf. 다음 글자열을 확인할 때는 항상 그 문자 인덱스를 벗어나지않게 조건을 설정해야한다)

3) 모든 경우 ++을 해준다. (두 자리 글자는 마지막 글자 자리에 ++, 세 자리 글자도 마지막 글자 자리에 ++)

 

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String s = br.readLine();
		int cnt = 0;

		for (int i = 0; i < s.length(); i++) {

			if ((s.charAt(i)) == 'c' && i < s.length() - 1) { //c일 경우
				if ((s.charAt(i + 1)) == '=') {
					i++;
				} else if ((s.charAt(i + 1)) == '-') {
					i++;
				}
			} else if ((s.charAt(i)) == 'd' && i < s.length() - 1) { //d일 경우
				if (((s.charAt(i + 1)) == 'z') && i < s.length() - 2) {
					if ((s.charAt(i + 2)) == '=') {
						i += 2;
					}
				} else if ((s.charAt(i + 1)) == '-') {
					i++;
				}
			} else if ((s.charAt(i)) == 'l' && i < s.length() - 1) {
				if ((s.charAt(i + 1)) == 'j') {
					i++;
				}
			} else if ((s.charAt(i)) == 'n' && i < s.length() - 1) {
				if ((s.charAt(i + 1)) == 'j') {
					i++;
				}
			} else if ((s.charAt(i)) == 's' && i < s.length() - 1) {
				if ((s.charAt(i + 1)) == '=') {
					i++;
				}
			} else if ((s.charAt(i)) == 'z' && i < s.length() - 1) {
				if ((s.charAt(i + 1)) == '=') {
					i++;
				}
			}
			cnt++;
		}
		System.out.println(cnt);

	}
}

'Algorithm > BOJ' 카테고리의 다른 글

BOJ 3985 롤케이크  (0) 2021.03.04
BOJ 2798 블랙잭  (0) 2021.03.03
BOJ 2999 비밀이메일  (0) 2021.03.01
BOJ 17413 단어뒤집기2  (0) 2021.02.26
BOJ 11399 ATM  (0) 2021.02.17