5698

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void){
    
    while(1){
        // 문장 입력
        char str[1001] = {0};
        gets(str);

        // 만약 문장의 첫번째 인덱스가 *이면 종료
        if(str[0] == '*'){
            break;
        }

        // 인접한 단어가 같은 글자로 시작하는지 구분
        int is_same_letter = 1, is_blank = 0;
        char first_letter = -1;
        for(int i = 0; i <strlen(str); i++){
            // 만약 공백이면 현재 칸이 공백임을 표시 후 continue;
            if(str[i] == 32){
                is_blank = 1;
                continue;
            }
            
            // 만약 첫번째 글자가 없으면 first_letter에 대문자로 저장
            if(first_letter == -1){
                first_letter = toupper(str[i]);
            }
            else{
                // 만약 이전이 공백일 경우
                if(is_blank){
                    // 공백 이후의 첫글자가 첫번째 글자와 같으면 
                    // is_same_letter을 1로 표시
                    // 그리고 공백이 아님으로 표시
                    if(first_letter == toupper(str[i])){
                        is_blank = 0;
                        is_same_letter = 1;
                    }
                    // 공백 이후의 첫글자가 첫번째 글자와 다르면
                    // is_same_letter을 0으로 표시 후 종료
                    else{
                        is_same_letter = 0;
                        break;
                    }
                }
            }
            
        }


        // 모든 단어가 같은 글자로 시작하면 Y 출력
        if(is_same_letter){
            printf("Y\n");
        }
        // 다른 글자면 N 출력
        else{
            printf("N\n");
        }
    }
    
    return 0;
}

 

 

반례가 있더라구영 ~~

 

+ Recent posts