Algorithm_PS

백준_2941(크로아티아 알파벳)

Frisbeen 2023. 10. 18. 06:12

2941번: 크로아티아 알파벳 (acmicpc.net)

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net

 

문제는 상당히 직관적이다. 주어진 문자열에서 크로아티아 알파벳이라는 특이한 문자가 있는지 검사하면 끝.

indexing을 잘 다루는 능력이 요구된다고 생각한다.

 

c=, c- dz= 와 같은 한 character가 2개이상일 경우를 검사할때 그 이전 인덱스 그 이전의 이전 인덱스 여유공간을 두는 조건문을 적어야만 indexoutofrange오류가 뜨지 않겠다.

 

그것을 잘 조정하면 쉽게 문제를 해결할수있을것 같다.

import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		String word = sc.next();
		int count =0 ;
		
		for(int i=0; i<word.length(); i++) {
			
			
			
			
			char cs = word.charAt(i);
			int len = word.length();
			
			 if(cs =='c' && i<len-1) {
				if(word.charAt(i+1) == '=' || word.charAt(i+1) == '-' ) {
					i++;
				}
				
			}
			
			 
			else if(cs == 'd' && i<	len-1) {
				if(word.charAt(i+1)=='-') {
					i++;
				}
				else if(word.charAt(i+1)=='z' && i<len-2) {
					if(word.charAt(i+2)=='=') {
						i +=2;
					}
				}
				
				
			}
			 
			else if((cs =='l' || cs == 'n')&& i<len-1) {
				if(word.charAt(i+1) == 'j') {
					i++;
				}
			}
			else if(cs =='s' && i<len-1) {
				if(word.charAt(i+1) == '=') {
					i++;
				}
			}
			else if(cs =='z' && i<len-1) {
				if(word.charAt(i+1) == '=') {
				i++;
				}
			}
			 count++;
		}
		System.out.println(count);
		
		
		sc.close();
		
		
		

	}

}

 

'Algorithm_PS' 카테고리의 다른 글

백준_2745 <진법 변환>  (1) 2023.10.26
백준_2563 <색종이>  (0) 2023.10.20
백준_10798(세로읽기)  (0) 2023.10.19
백준_25206 (너의 평점은)  (1) 2023.10.16
백준_10811 (바구니 뒤집기)  (0) 2023.10.16